vscode-java-test icon indicating copy to clipboard operation
vscode-java-test copied to clipboard

Could not recognize different test set

Open briannqc opened this issue 7 years ago • 13 comments

I'm working on gradle project with the structure like below:

  • main
    • java
    • resource
  • test
    • java
    • resource
  • test-integration
    • java
    • resource

Java Test Runner can only recognize test on /test but not on /test-integration

briannqc avatar Nov 27 '18 07:11 briannqc

@quoccuongngo

Does the folder test-integration marked as test folder in the gradle configuration?

jdneo avatar Dec 02 '18 10:12 jdneo

I have the same configuration and issue. The test runner does not see the integration tests unless i add the integration test directory to the test source sets but that behavior is undesirable since then gradle will run the integration tests with the regular unit tests.

I tried setting the test config option in my settings.json file to both of the below and that had no change. "java.test.defaultConfig": "integrationTest" "java.test.defaultConfig": "integration-test" Here is my build.gradle file. The behavior I expect is that since the task is a type "test" that the java test runner is able to recognize it as a seperate test configuration. Or that i can specify that integration tests is the test configuration i want to run.

sourceSets {
    main {
        java.srcDirs = ['src/main/java']
        resources.srcDirs= ['src/main/resources']
    }
    test {
        java.srcDirs = ['src/test/java']
	resources.srcDirs = ['src/test/resources']	
    }   
    integrationTest{      
        java.srcDirs = ['src/integration-test/java']      
        resources.srcDirs = ['src/integration-test/resources']
        compileClasspath += main.output +  test.output 
	runtimeClasspath += main.output + test.output 
    }
   
}
task integrationTest(type: Test) {
    testClassesDirs = sourceSets.integrationTest.output.classesDirs
    classpath = sourceSets.integrationTest.runtimeClasspath
    ignoreFailures = true
}

jbrandli avatar Mar 19 '19 17:03 jbrandli

The behavior I expect is that since the task is a type "test" that the java test runner is able to recognize it as a seperate test configuration. Or that i can specify that integration tests is the test configuration i want to run.

@jbrandli Can you explain more about this? Sorry I do not quite get your idea.

jdneo avatar Mar 20 '19 09:03 jdneo

Right now, my integrationTests are not recognized by the java test runner, even though they are junit tests, and they have the gradle category of test.

I can make the java test runner recognize these tests by adding the integration-test directory to the "test" SourceSet configuration, but then i lose the ability to run my integration tests independently of the unit tests.

I would like the java test runner plugin to be able to recognize multiple source sets of tests.

jbrandli avatar Mar 20 '19 21:03 jbrandli

I think the easiest option would be a setting for the extension that allows me to add another name for the test runner to look for.

"additionalTestConfigurations":["integrationTest"]

jbrandli avatar Mar 20 '19 21:03 jbrandli

Thank you @jbrandli for your feedback. I'll take a look.

jdneo avatar May 16 '19 09:05 jdneo

has there been any development for this feature?

gsiawGH avatar Nov 16 '21 17:11 gsiawGH

Another related issue: https://github.com/redhat-developer/vscode-java/issues/2499

Seems that infer the test source paths according to the .classpath is not good enough.

jdneo avatar Aug 01 '22 05:08 jdneo

My use case is very similar to this use case except that I am using maven and my tests are in src/main/java. This is because these tests are e2e tests using junit5 that we want to run any time our infrastructure changes. So we build them into a container and run that container as part of our CI/CD process. The test code itself rarely changes but the infra is changing constantly. It doesn't make conceptual sense to use the build process of different project to run tests across the entire application suite.

lucastheisen avatar Nov 25 '22 19:11 lucastheisen