1

我的 maven pom 文件中有一个不同的简单配置文件,可以在正常测试阶段运行一些集成测试。注意我不想在正常的集成测试阶段运行这些测试,因为我不想构建战争和部署等。这些测试像正常的 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>

谢谢大家的帮助。

4

1 回答 1

2

您粘贴的实际代码显然不起作用,因为您TestSellerSignupWizardTestCustomerSignupWizard. 但是我认为这是一个错字,实际上并不重要,因为 Surefire 的默认包含掩码之一**/Test*.java在这种情况下非常适合您。

所以这一切看起来都是可行的解决方案,所以我担心一个问题是你的测试类路径中没有这个类。你提到这在某种程度上与集成测试有关,所以这个类可能位于其中,src/it/java而不是src/test/javaMaven 对 Surefire 的默认设置。如果我是对的,您应该将此类移入src/test/java或使用(如您尝试的那样)替代 Surefire 执行,但testSourceDirectory参数被覆盖(链接)。

于 2012-04-24T13:37:43.967 回答