Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从特拉维斯排除试验_Java_Maven_Testing_Continuous Integration_Tycho - Fatal编程技术网

Java 从特拉维斯排除试验

Java 从特拉维斯排除试验,java,maven,testing,continuous-integration,tycho,Java,Maven,Testing,Continuous Integration,Tycho,我正在做一件事。我们使用Travis进行持续集成 一些更复杂的JUnit测试目前没有在Travis环境中通过,尽管它们在本地通过 问题:是否有一种快速简便的方法将特定的测试类或方法标记为“不要在Travis上运行”因此,我们可以在我找出如何修复这些测试的Travis环境的同时继续前进?一个可能的解决方案是向相关项目添加一个,并从其测试目标执行中配置这些测试的 例如: <profiles> <profile> <id>trasis<

我正在做一件事。我们使用Travis进行持续集成

一些更复杂的JUnit测试目前没有在Travis环境中通过,尽管它们在本地通过


问题:是否有一种快速简便的方法将特定的测试类或方法标记为“不要在Travis上运行”因此,我们可以在我找出如何修复这些测试的Travis环境的同时继续前进?

一个可能的解决方案是向相关项目添加一个,并从其测试目标执行中配置这些测试的

例如:

<profiles>
    <profile>
        <id>trasis</id>
        <build>
            <plugins>
              <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.19.1</version>
                <configuration>
                  <excludes>
                    <!-- exclude tests here -->
                    <exclude>**/TestCircle.java</exclude>
                    <exclude>**/TestSquare.java</exclude>
                  </excludes>
                </configuration>
              </plugin>
            </plugins>
        </build>
    </profile>
</profiles>
这将:

  • 激活上面的配置文件
  • 为Surefire插件应用自定义配置
  • 从测试阶段排除已配置的测试(模式)
然后,本地生成可以忽略此配置文件,而在Trasis上仍处于活动状态。一旦问题得到解决,就可以将其从trasis配置和pom文件本身中完全删除


或者,特别是如果无法更改相关pom文件,可以使用选项和精心编制的正则表达式排除测试(和方法):

由于2.19,一个参数(JUnit 4、JUnit 4.7+、TestNG)支持复杂语法:
-Dtest=???Test,!Unstable*,pkg/**/Ci*leTest.java,*Test#Test*One+testTwo????,#fast*+slowTest

-Dtest=Basic*,!%regex[..*.Unstable.*],!%regex[..*.MyTest.class#one...*two.*],%regex[#fast.| slow.*]


我会问为什么这些测试不在特拉维斯身上运行?所以你在一个测试中做了一些你不应该做的事情,因为你说它们在本地运行,但在travis上它们不…我会深入研究这些测试为什么它们不在travis上运行。。
mvn clean install -Ptrasis
mvn clean install -Dtest=*Test,!FromThisClass#excludeThisMethod