Maven未运行在配置文件中指定的测试

时间:2012-04-24 12:46:51

标签: testing maven selenium profile

我在maven pom文件中有一个不同的简单配置文件,可以在正常的测试阶段运行一些集成测试。注意我不想在正常的集成测试阶段运行这些测试,因为我不想构建war和部署等。测试运行正常,就像正常的JUnit测试一样。

所以这是我的个人资料:

<profile>
  <id>AdminSeltests</id>
  <build>
    <plugins>
   <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-plugin</artifactId>
      <version>2.12</version>

      <configuration>
          <includes>
            <include>**/*/TestSellerSignupWizard.java</include>
          </includes>
      </configuration>

      <executions>
      <execution>
        <id>execution2</id>
        <phase>test</phase>
       </execution>
      </executions>
    </plugin> 
    </plugins>
  </build>
</profile>

我的测试被称为:

com.xxxxx.xxx.client.selenium.seller_signup.TestCustomerSignupWizard

但是当我使用以下命令运行上述配置文件时

mvn test -P AdminSeltests

没有运行测试。我已经尝试了以下值作为值:

<include>**/TestSellerSignupWizard.*</include>
<include>**/TestSeller*.*</include>
<include>**/TestSeller*.java</include>
<include>**/*/TestSeller*.java</include>
<include>
  com.xxxxx.xxx.client.selenium.seller_signup.TestCustomerSignupWizard.java
</include>

这些都不起作用。

任何想法?

由于 亚当

解决: 我使用的是maven-surefire-plugin,它有一个自动includes部分,其中包含您正常的测试内容。所以我做了一个exclude配置来排除正常的单元测试,然后一个include部分包含一个我要运行的集成测试模式

不确定为什么会这样,但确实如此:

<configuration>
    <excludes>
      <exclude>**/Test*.java</exclude>
      <exclude>**/*Test.java</exclude>
      <exclude>**/*TestCase.java</exclude>
    </excludes>
    <includes>
      <include>**/ITTestSellerSignupWizard.java</include>
    </includes>
</configuration>

感谢大家的帮助。

1 个答案:

答案 0 :(得分:2)

您执行粘贴的实际代码段显然不起作用,因为您在TestSellerSignupWizard中进行测试时提到了类TestCustomerSignupWizard。我认为这是一个错字,实际上并不重要,因为在这种情况下,Surefire的默认掩码之一**/Test*.java与你很吻合。

所以这看起来像是工作解决方案,所以我担心问题是你的测试类路径中没有这个类。你提到这与集成测试有某种关系,所以这个类可能位于src/it/java而不是src/test/java,这是Maven的Surefire默认值。如果我是对的,您应该将此课程移至src/test/java或使用(如您所尝试的)替代Surefire执行但testSourceDirectory参数已覆盖(link)。