2016-12-28 75 views
0

我有这么多的java文件和那些java文件test.java不在src/test/java结构中。例如: 例如:我在src/java/abc中有一个名为abc.java的java文件,但是这个名为abcTest.java的java文件的测试文件位于src/java/junit/abc中。 因此,我将如何通过maven pom.xml来执行此java文件的junit测试,因为maven需要src/main/java中的正常java文件并在src/test/java中测试文件,所以我将如何通过maven进行测试?如何在Maven测试文件不在mavenise结构中运行Junit测试

我在我的pom.xml中添加了junit dependency和surefire插件。

<dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>4.12</version> 
      <scope>test</scope> 
     </dependency> 

和万无一失插件

<plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-surefire-plugin</artifactId> 
       <version>2.10</version> 
       <configuration> 
       <testSourceDirectory>${basedir}/../src/java/junit/*.java</testSourceDirectory> 
       <testClassesDirectory>${project.build.directory}/classe‌​s/</testClassesDirectory> 
<includes> 
      <include>abcTest.java</include> 
      </includes> 
       </configuration> 
      </plugin> 

我已经给MVN测试命令,但它仍然是给在日志零次测试。任何人都可以帮助我如何通过maven运行junit test.java文件?

+0

为什么你需要这种结构? – asg

+0

我不需要任何结构 –

+0

对不起,如果我困惑你。我的观点是你为什么想把JUnit类放在你的源代码中,你需要使用pom.xml来运行它? – asg

回答

0

我在我的pom.xml后basedirectory标签和JUnit测试案例跑帅客将这两线以下完美。现在我正在运行mvn安装和test.java中的所有测试用例都在运行,尽管我没有像结构一样的maven。

<testSourceDirectory>${basedir}/../src/java/junit</testSourceDirectory> 
     <testOutputDirectory>${basedir}/target/test-classes</testOutputDirectory> 

之后,我添加了surefire插件,那就是我所有的junit测试用例都在运行。

0

假设你不能真正的项目结构,你必须定制surefire插件。

添加一个junit依赖是不够的 - 它只允许编译你的测试类。

所以,你的方向是正确的 - 你必须定制一个负责运行测试的maven插件。

现在,为了使保命插件运行不* Test.java结束测试,你就必须改变夹杂物:

也就是说,你必须指定正则表达式,将反映测试的名字你想运行:

This page描述只是这

希望这有助于

+0

我已经添加了include语句,但它仍然没有运行。 –

+0

org.apache.maven.plugins 行家-万无一失-插件 2.10 <结构> $ {BASEDIR} /../的src /爪哇/ junit的/ *。java的 $ {project.build.directory}/classe s/ abcTest。java

+0

仍然没有运行,可以检查这个错误是什么@ Mark Bramnik –

相关问题