ctubbsii opened a new pull request, #5866:
URL: https://github.com/apache/accumulo/pull/5866
* Revert d21fc1bb4124df757e5d0691fd19281655d75761 for PR #5852, since #5851
can be fixed with this change instead, without adding a new test to the sunny
profile; comprehensive table operations testing is outside the scope of the
basic test case that the sunny profile should be limited to doing
* Add the `failIfNoTests = false` option to the `@Suite` annotation so that
it does not fail if some combination of options fails to result in any matching
test cases to run (minicluster is still started for the test, though no tests
will run; that is addressed by the next change below)
* Explicitly run only the regular junit-jupiter engine, and not the
junit-platform-suite engine, by default when running the sunny profile, so that
it does not execute SimpleSharedMacTestSuiteIT's BeforeSuite and AfterSuite
methods, which is a waste of time since that suite does not have any tests with
the SunnyDay tag
Also:
* Move the class so it fits into the module/package naming conventions
* Add a CI check for module/package naming conventions for future work
More background:
The maven-surefire-plugin/maven-failsafe-plugin's JUnit5 provider will use
both the normal (non-suite) `junit-jupiter` engine and the
`junit-platform-suite` engine. These engines behave differently when handling
the surefire/failsafe option to filter tests based on groups. The regular
engine will filter tests based on the configured groups by the `@Tag`
annotation before executing the tests. The suite engine appears to identify the
suites to run first, then filters the test cases contained in that suite by the
`@Tag` annotation. While the regular engine's failure to find any tests can be
handled by the Maven properties, `(surefire|failsafe).failIfNoSpecifiedTests`,
that does not work for the suite engine. Instead, the suite engine requires
`@Suite(failIfNoTests = false)` to be used. That will prevent the failure to
find tests from failing the build, but it will still execute the suite's
`@BeforeSuite` and `@AfterSuite` methods. An additional configuration is needed
to explicitly
control which engines are executed by surefire/failsafe in order to avoid
executing "empty" suites' before/after steps entirely. In Accumulo, we do not
have any suite tests that need to run during the `sunny` profile, so we can
safely skip the suite engine's execution when activating that profile. We do
not want to exclude the engine, though, because that limits the user's ability
to override settings on the command-line with an exclude option. So instead, we
limit the set of included engines to only the regular one, so users can still
override the include/exclude properties to have more granular control, if they
wish.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]