java - spring boot:如何仅在 jenkins 上运行测试类?
问题描述
我们有一个测试类,我只想在 Jenkins 上运行。
我认为这可以通过检查活动弹簧配置文件(例如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>
在非詹金斯运行:mvn test -Pskip-test
推荐阅读
- c - 使用指针删除链表中的节点
- python - 为什么 selenium 的 move_by_offset 函数有时会在执行前等待(Python/Chrome)
- java - 将 JPanel 从另一个项目添加到 JFrame
- ruby-on-rails - 打开 rails 控制台或执行 rake db:create 时出错
- python - 为什么熊猫不创建excel文件?
- r - R:按名称列出的与数据框大小不等的命名数字列
- ehcache - Ehcache:存储空值以指示缺失值与“尚未缓存”?
- angular - 如何使用角度材料选项卡将选项卡设置为角度默认选项卡
- android - 选择性地将数据从 Firebase 检索到 FirebaseRecyclerAdapter
- java - JButton ActionListener 执行 if- 和 else- 语句