【发布时间】:2016-04-05 12:23:34
【问题描述】:
我需要能够使用在 JUnit 测试运行时激活的配置文件。 我想知道是否有任何方法可以做类似的事情:
String str = System.getProperty("activated.profile[0]");
或任何其他相对方式...
我意识到有一个选项可以使用 ${project.profiles[0].id} bu,但不知何故它不起作用。
有什么想法吗?
【问题讨论】:
-
为什么在单元测试中需要关于配置文件的信息?
-
这听起来确实像一个典型的 XY 问题。您在这里真正想要达到什么目的?
-
我一直在使用不同类别的分析来运行 junit 测试套件。我需要确定运行的套件是否在 Sanity、回归、slowTests 等范围内,而我想通过以下方式从配置文件 id 中获取这个:System.getProperty(profiles).contains("Sanity")。我想避免在 pom 中使用属性,因为它会让我重复一些我不喜欢的行。
-
我认为没有一种简单而优雅的方法可以做到这一点。如果我在这里尝试有点创意,那么将一个特定文件(属性文件)作为测试资源,该文件将包含一个值(属性),可以在运行测试之前替换(资源替换) .每个配置文件都可以将属性值设置为对您有意义的值,然后您的测试代码可以在目标文件夹中查找此文件并读取此值。
-
我只是认为有一种简单的方法可以获取当前激活的个人资料的 Id。
标签: java maven unit-testing maven-profiles system-variable