Java SpringBoot:如何仅在jenkins上运行测试类?
我们有一个测试班,我只想在詹金斯身上运行 我认为这可以通过检查活动弹簧配置文件(例如Java SpringBoot:如何仅在jenkins上运行测试类?,java,unit-testing,spring-boot,jenkins,Java,Unit Testing,Spring Boot,Jenkins,我们有一个测试班,我只想在詹金斯身上运行 我认为这可以通过检查活动弹簧配置文件(例如jenkins)或当本地机器名为XYZ时实现 问题是,当我们试图在jenkins以外的机器上运行应用程序时,应用程序上下文的加载失败 因此,我无法检查测试类本身的@Before方法中的概要文件或参数 @RunWith(SpringRunner.class) @SpringBootTest(classes = Config.class) @AutoConfigureTestDatabase(replace = Au
jenkins
)或当本地机器名为XYZ
时实现
问题是,当我们试图在jenkins以外的机器上运行应用程序时,应用程序上下文的加载失败
因此,我无法检查测试类本身的@Before方法中的概要文件或参数
@RunWith(SpringRunner.class)
@SpringBootTest(classes = Config.class)
@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)
@ActiveProfiles("clusterMongo")
public class MongoTest {
@Before
public void setupClass() {
// Ignore test if not running on white listed machines
org.junit.Assume.assumeTrue(AuthTools.isJenkins()); // wonT work !!
}
有什么办法可以做到这一点吗
我可以使用条件bean吗?您有一个声明性选项,而不是通过编程实现 您可以将surefire插件配置为跳过特定Maven配置文件的特定测试:
<profile>
<id>skip-test</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<excludes>
<exclude>**/MongoTest.java</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</profile>
跳过测试
org.apache.maven.plugins
maven surefire插件
**/MongoTest.java
在非Jenkins运行时:
mvn测试-Pskip测试
您最好将其放在一个单独的integrationTest目录中,只在Jenkins中运行该源代码集。Gradle在这里举了一个例子来支持这一点:但是有很多方法可以用你用来构建和运行的任何工具来实现。酷,我们以后也会考虑这个问题。这可能是最好的方法之一。