mirror of
https://github.com/catchorg/Catch2.git
synced 2024-11-25 06:46:10 +01:00
Special case --list-tests --verbosity quiet
The new output (mostly) follows the old `--list-test-names-only` format, with the exception of no longer supporting line output for `--verbosity high`. Fixes #2051
This commit is contained in:
parent
b6a3e2e26b
commit
923bcc5d6f
@ -21,6 +21,24 @@
|
|||||||
|
|
||||||
namespace Catch {
|
namespace Catch {
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
void listTestNamesOnly( std::vector<TestCaseHandle> const& tests ) {
|
||||||
|
for ( auto const& test : tests ) {
|
||||||
|
auto const& testCaseInfo = test.getTestCaseInfo();
|
||||||
|
|
||||||
|
if ( startsWith( testCaseInfo.name, '#' ) ) {
|
||||||
|
Catch::cout() << '"' << testCaseInfo.name << '"';
|
||||||
|
} else {
|
||||||
|
Catch::cout() << testCaseInfo.name;
|
||||||
|
}
|
||||||
|
|
||||||
|
Catch::cout() << '\n';
|
||||||
|
}
|
||||||
|
Catch::cout() << std::flush;
|
||||||
|
}
|
||||||
|
} // end unnamed namespace
|
||||||
|
|
||||||
|
|
||||||
ReporterConfig::ReporterConfig( IConfig const* _fullConfig )
|
ReporterConfig::ReporterConfig( IConfig const* _fullConfig )
|
||||||
: m_stream( &_fullConfig->stream() ), m_fullConfig( _fullConfig ) {}
|
: m_stream( &_fullConfig->stream() ), m_fullConfig( _fullConfig ) {}
|
||||||
|
|
||||||
@ -137,6 +155,14 @@ namespace Catch {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void IStreamingReporter::listTests(std::vector<TestCaseHandle> const& tests, IConfig const& config) {
|
void IStreamingReporter::listTests(std::vector<TestCaseHandle> const& tests, IConfig const& config) {
|
||||||
|
// We special case this to provide the equivalent of old
|
||||||
|
// `--list-test-names-only`, which could then be used by the
|
||||||
|
// `--input-file` option.
|
||||||
|
if (config.verbosity() == Verbosity::Quiet) {
|
||||||
|
listTestNamesOnly(tests);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (config.hasTestFilters()) {
|
if (config.hasTestFilters()) {
|
||||||
Catch::cout() << "Matching test cases:\n";
|
Catch::cout() << "Matching test cases:\n";
|
||||||
} else {
|
} else {
|
||||||
|
@ -99,6 +99,15 @@ set_tests_properties(List::Tests::Output PROPERTIES
|
|||||||
PASS_REGULAR_EXPRESSION "[0-9]+ test cases"
|
PASS_REGULAR_EXPRESSION "[0-9]+ test cases"
|
||||||
FAIL_REGULAR_EXPRESSION "Hidden Test"
|
FAIL_REGULAR_EXPRESSION "Hidden Test"
|
||||||
)
|
)
|
||||||
|
# This should be equivalent to the old --list-test-names-only and be usable
|
||||||
|
# with --input-file.
|
||||||
|
add_test(NAME List::Tests::Quiet COMMAND $<TARGET_FILE:SelfTest> --list-tests --verbosity quiet)
|
||||||
|
# Sadly we cannot ask for start-of-line and end-of-line in a ctest regex,
|
||||||
|
# so we fail if we see space/tab at the start...
|
||||||
|
set_tests_properties(List::Tests::Quiet PROPERTIES
|
||||||
|
PASS_REGULAR_EXPRESSION "\"#1905 -- test spec parser properly clears internal state between compound tests\"[\r\n]"
|
||||||
|
FAIL_REGULAR_EXPRESSION "[ \t]\"#1905 -- test spec parser properly clears internal state between compound tests\""
|
||||||
|
)
|
||||||
add_test(NAME List::Tests::ExitCode COMMAND $<TARGET_FILE:SelfTest> --list-tests --verbosity high)
|
add_test(NAME List::Tests::ExitCode COMMAND $<TARGET_FILE:SelfTest> --list-tests --verbosity high)
|
||||||
add_test(NAME List::Tests::XmlOutput COMMAND $<TARGET_FILE:SelfTest> --list-tests --verbosity high -r xml)
|
add_test(NAME List::Tests::XmlOutput COMMAND $<TARGET_FILE:SelfTest> --list-tests --verbosity high -r xml)
|
||||||
set_tests_properties(List::Tests::XmlOutput PROPERTIES
|
set_tests_properties(List::Tests::XmlOutput PROPERTIES
|
||||||
|
Loading…
Reference in New Issue
Block a user