当前位置: 首页 > 知识库问答 >
问题:

仅当设置了特定的spring配置文件时才运行集成测试

程昕
2023-03-14

我们在spring boot应用程序中有多个测试类。有些类包含集成测试,有些包含单元测试。这意味着如果我(例如使用maven)让所有测试执行,它将运行所有类中的所有测试。

我希望实现的是,只有在设置了特定的spring概要文件(例如通过application.yml)时,才执行集成测试。例如,我喜欢注释整个测试类,以定义只有在设置了指定的spring概要文件时才执行该类中的测试。如果未设置,则忽略这些测试。

  • 主题如何使用@ifprofilevalue测试配置文件是否处于活动状态?就在这个方向。@ifprofilevalue乍一看就像我需要的一样。但正如所指出的,事实并非如此。我可以使用它,如果我要设置一个特定的系统属性。但是我需要使用一个真正的spring概要文件(而不是系统属性spring.profiles.active-这将忽略通过application.yml
  • 设置的概要文件)
  • @profile似乎也是我所需要的,但正如主题使用@profile来决定执行测试类所示,我们不应该使用它。

共有1个答案

花阳辉
2023-03-14

我不知道您希望如何实现它,但是如果您使用junit,这里有一种方法可以在运行时简单地使用配置属性有条件地忽略一些测试:

Application.Properties:

test.enabled=true

然后,在测试代码中,可以使用org.junit.apple和如下所示的属性:

@Value("${test.enabled}")
private Boolean testEnabled;

@Test
public void test {
    org.junit.Assume.assumeTrue(testEnabled);
    // your test code
}

现在,如果将属性test.enabled设置为true,测试将运行,否则将被忽略。

来源:在JUnit4中有条件地忽略测试

 类似资料:
  • 我在Maven上构建了一个Spring Boot应用程序。我正在使用Spring概要文件来区分特定于环境的配置。我想防止在特定的Spring配置文件处于活动状态时运行测试。原因:我希望防止使用生产属性运行测试()。我想在全球范围内(可能使用一些Maven插件)进行这项工作,而不是在每个测试中单独进行。 你对此有什么检查过的解决方案吗?

  • 问题内容: 如何设置在特定时间仅运行一次文件?替代方法之一是,但并非所有标准托管计划的用户都可以访问。因此,我想知道是否有办法使用? 问题答案: 尝试在2011年3月30日午夜执行命令: 警告 :如评论所述,cron的标准/默认实现不支持 year 列。请参考下面的TomOnTime答案,以了解将来在cron的标准实现中在特定时间运行脚本的正确方法。

  • 我已经配置了一个配置文件来只运行集成测试,但它仍然在运行所有测试。这是配置: 我试过正则表达式,就像在http://maven.apache.org/surefire/maven-surefire-plugin/examples/inclusion-exclusion.html但我发现这不管用。我怎样才能让测试以IT.java结束?

  • 有谁能告诉我,是否可以根据应用程序运行的环境在spring加载的应用程序中定义概要文件(Dev、Prod、Local)? 每个开发人员都需要配置一个本地配置文件(每个开发人员都需要配置一个本地配置文件,每个开发人员都需要配置一个本地配置文件来运行Prod)

  • 问题内容: 使用Spring Maven上下文,我想基于Maven配置文件运行特定的测试。我想有一种标记测试组的简单方法。如果可能的话,我想使用注释。那里有哪些选项,例如maven命令行参数,maven配置文件规范等。 说我有以下测试: 例: 当然,@ Profile(用于创建Bean)和@ActiveProfile(用于选择特定的配置文件以创建Bean)之类的注释不能用于选择测试。所有测试仅针对

  • 使用Spring maven上下文,我希望运行基于maven概要文件的特定测试。我想有一个简单的方法标记测试组。如果可能的话,我想使用注释。有哪些选项,如maven命令行参数、maven配置文件规范等。 假设我有以下测试: 示例: 下面的精彩答案集中在JUnit的@Category机制上。感谢大家! 另一种方法是通过以下步骤:[1]在maven配置文件中设置一个属性,[2]使用该属性通过标准sur