Java 仅在测试文件夹中运行测试

Java 仅在测试文件夹中运行测试,java,unit-testing,junit,Java,Unit Testing,Junit,我有一个java测试项目,它运行在作为该项目的依赖项列出的项目中找到的所有测试 @RunWith(ClasspathSuite.class) @ClassnameFilters({ "com.example.*_Test" }) public class AllRegularTests { // nothing to do } 我的测试通常在test/文件夹中,而不是src/ 如何使测试套件只在test/中查找类,而不在src/中查找类?也许您可以使用testSourceDirector

我有一个java测试项目,它运行在作为该项目的依赖项列出的项目中找到的所有测试

@RunWith(ClasspathSuite.class)
@ClassnameFilters({ "com.example.*_Test" })
public class AllRegularTests {
   // nothing to do
}
我的测试通常在
test/
文件夹中,而不是
src/


如何使测试套件只在
test/
中查找类,而不在
src/
中查找类?

也许您可以使用testSourceDirectory定义来查找,但我不确定

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
                <testSourceDirectory>${basedir}/src/main/java/</testSourceDirectory>
                <testClassesDirectory>${project.build.directory}/classes/</testClassesDirectory>
            </configuration>
        </plugin>
    </plugins>
</build>

org.apache.maven.plugins
maven surefire插件
${basedir}/src/main/java/
${project.build.directory}/classes/

这里似乎没有什么不对的地方:

  • 默认情况下,Maven在查找要运行的测试时使用以下命名约定:Test**Test*TestCase您的测试类不遵循这些约定。您应该重命名它或配置Maven Surefire插件,以便为测试类使用另一种模式
  • 单元测试代码应放在测试文件夹下,如果将其放在主文件夹下,则无法将其识别为测试类。 例如
  • 错误/my_program/src/main/java/NotTest.java

    /my_program/src/test/java/MyTest.java


    另外,检查您的测试类目录(例如src/test/java)是否对应于pom.xml属性下的属性中列出的目录。我花了一段时间才找到答案。

    @adi这个解决方案对你有用吗?还是你还面临什么问题?