java - Spring 启动: how to run a test class only on jenkins?

标签 java unit-testing spring-boot jenkins

我们有一个测试类,我想只在 Jenkins 上运行。

我认为这可以通过检查 Activity 的 spring 配置文件(例如 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>

在非 Jenkins 上运行:mvn test -Pskip-test

关于java - Spring 启动: how to run a test class only on jenkins?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56601186/

相关文章:

unit-testing - 为编译器阶段编写可维护的测试

Android Activity 单元测试中模拟数据源的技巧

spring-data-jdbc 与 mybatis 集成

spring-boot - Spring Boot 自定义 Kubernetes 就绪探测

java - 更改上下文根后,前端角度项目无法与 Spring boot 项目一起使用

java - 如何在java中删除csv文件列中的特殊字符

java - 当单击按钮从网络加载图像时,如何防止表单卡住?

java - 如何确定 Play Framework 服务器可以处理的最大并行/同时文件下载数。对于固定带宽

java - 可以根据java中的访问重载方法吗?

c# - 如何使用构造函数依赖注入(inject)对 ASP.NET Core 应用程序进行单元测试