java - 在 java 中运行所有测试类之前,只需设置一次系统属性和静态属性
问题描述
我有多个扩展公共基类的 java 测试类。目前我有两种方法 - startUp() 和 shutDown() 分别带有 @BeforeClass 和 @AfterClass 注释,它们使这些方法在每个测试类之前和之后运行一次。
我想在基类中定义一个可以由所有测试类共享的成员(因此必须将其设为静态)。此类成员需要在初始化之前设置一些系统属性。
有没有说在所有测试(在所有测试类组合中)之前设置这些系统属性一次,然后设置静态成员?
我不想使用 junit 套件,因为我以后可能会添加更多测试类,这将导致每次都对套件进行更改,从而导致额外的依赖。
解决方案
您可以尝试这样的 JUnit 规则:
@Rule
public final RestoreSystemProperties restoreSystemProperties = new RestoreSystemProperties();
@BeforeClass
public static void beforeClass() {
System.setProperty("MY_PROPERTY", "myNewValue");
}
规则会处理其余的事情并在需要时重新创建属性,您只需要一个新的测试依赖项:
<dependency>
<groupId>com.github.stefanbirkner</groupId>
<artifactId>system-rules</artifactId>
<version>1.2.0</version>
<scope>test</scope>
</dependency>
推荐阅读
- excel - 在用户表单中显示工作表数据
- swift - 在 Linux 上迁移到 Swift 5 后,包管理器出现奇怪问题
- c++ - 宣言与。类的定义
- c++ - Qt:用于信号槽处理的 Lambda 或私有方法?
- angular - 文件从 Typescript 上传到 asp.net-core web api:无法将文件作为参数传递给 web api
- vue.js - 无法从 Vue 模板中的 API 响应加载属性
- python - 如何将数据框导出为具有随机生成名称的 CSV
- laravel - 我如何在 Controller --resources 中仅针对 $request 使用更新功能?
- angular - 如何在没有服务的情况下在两个组件之间共享共享变量
- java - 在访问 Azure 端点时遇到“java.net.ConnectException:到远程主机的路由不可用”