Robert Važan created SUREFIRE-2189:
--------------------------------------

             Summary: Tests in src/main/java are not detected
                 Key: SUREFIRE-2189
                 URL: https://issues.apache.org/jira/browse/SUREFIRE-2189
             Project: Maven Surefire
          Issue Type: Bug
          Components: JUnit 5.x support, Maven Surefire Plugin
    Affects Versions: 3.1.2
         Environment: Java 17, with or without JPMS
            Reporter: Robert Važan


There are sometimes reasons to put JUnit tests under src/main/java next to 
production code. Surefire cannot detect these tests and runs only tests under 
src/test/java.

I tried to set testClassesDirectory to target/classes. That causes surefire to 
run tests under src/main/java, but then tests under src/test/java are ignored. 
Changing testClassesDirectory also causes weird module loading exceptions in a 
bigger project with more dependencies.

If you are curious why anyone would put test in production code, here are my 
reasons:
 # I want to run all tests in the background after the app starts in dev 
environment. Since the tests rarely fail, this lets me shorten edit-test-run 
cycle into edit-run cycle.
 # I want to visually annotate app UI that has associated tests.
 # I want to run tests in production environment as a sanity check.
 # I want to check compatibility between the app and its environment. This 
could be done with ordinary code, but structuring it as JUnit tests is 
convenient and results in clean code.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to