我有一个定制的eclipse工作室项目。对于单元测试,我们将在-
TestJavaSrc/demoTest.java现在这个TestJavaSrc文件夹与POM.xml的级别相同,这里是POM.xml -
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.demo.test</groupId>
<artifactId>demo</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
</plugin>
</plugins>
</build>
</project>现在,当我以mvn测试的形式运行这个项目时,它无法找到任何测试文件。而且,当我在命令行上运行命令时-
mvn "-Dtest=TestJavaSrc/DemoTest.java" test它给了我错误-
Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test
(default-test) on project demo: No tests were executed!
(Set -DfailIfNoTests=false to ignore this error.) -> [Help 1]而且,我的类路径中有JUnit4
我遗漏了什么吗?
发布于 2016-11-15 14:03:28
在Maven 标准目录布局中,用src/test/java编写的单元测试应该位于src/test/java下面。
src目录包含所有用于构建项目、其站点等的源代码。它包含每个类型的子目录:主构建工件的main,单元测试代码和资源的test,站点等等。
因此,强制插件将执行确切位于该文件夹中的测试;这可以通过testSourceDirectory参数进行配置。请注意,此目录是包含所有测试的基本源目录。这意味着如果这个基本目录是somedir,并且有一个名为DemoTest.java的Java类,声明在包foo.bar中,那么磁盘上的文件必须位于somedir/foo/bar/DemoTest.java中。
这就是您使用的参数test的输入位置:它只选择要以名称执行的类,而不是通过其包声明或文件在磁盘上的位置来执行。
我建议您将测试类放在标准目录中,但是如果您真的想这样做,有多个选项:
TestJavaSrc,位于Maven项目的基本目录中,那么您可以在POM中配置它:
${project.basedir}/TestJavaSrcsrc/test/java,但是想要另外考虑这个新的源目录,那么您可以使用Build插件的add-test-source目标:
org.codehaus.mojo构建-帮助器-maven-plugin 1.12附加测试源添加-测试源TestJavaSrc请注意,这两种方法都意味着直接位于该文件夹下的demoTest.java文件将位于默认包中,因此它不能有package声明。
https://stackoverflow.com/questions/40610683
复制相似问题