【发布时间】:2019-06-14 15:26:25
【问题描述】:
我们有一个测试类,我只想在 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吗?
【问题讨论】:
-
你最好把它放在一个单独的 integrationTest 目录中,并且只在 Jenkins 中运行那个源集。 Gradle 在这里举了一个例子来支持这一点:petrikainulainen.net/programming/gradle/…,但是你可以使用任何工具来构建和运行。
标签: java unit-testing spring-boot jenkins