c# - 在 MSTest TestContext 中存储数据或在 TestRun 期间存储数据的其他方式
问题描述
我是他们在 MsTest 的 TestContext 中存储全局数据的一种方式吗?还是在 TestRun 期间存储数据的另一种机制?
我想在 Assembly Initialize 时从 Rest-Resource 中读取一个字符串,并将其存储在某个地方,以便在我的 TestMehtod 的自定义实现期间访问它。
解决方案
想到了2个解决方案。
运行设置
第一个是与 Visual Studio 和 MSTest 的RunSettings文件更集成的解决方案。在以 XML 结构定义的 RunSettings 文件中,您已经预定义<TestRunParameters>
了可以在由 MSTest 装饰器(例如 、 等)装饰的方法或类中访问和设置的[AssemblyInitialize]
文件[TestClass]
。在这些修饰的方法或类中,你当然可以访问一个TestContext
对象,并且在这个对象中,你可以通过 usingTestContext
获取或设置你定义的键值对。<TestRunParameters>
TestContext.Properties
例如,假设您有一个 RunSettings 文件,
<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
<TestRunParameters>
<Parameter name="Name" value="Dan" />
</TestRunParameters>
</RunSettings>
你可以在你的测试类中做到这一点:
[TestClass]
public class Configuration
{
[ClassInitialize]
public static void ClassInitialize(TestContext testContext)
{
Console.Write(testContext.Properties["Name"]); // Outputs "Dan"
// The TestContext object will be modified and the updated value
// will be ready the next time it's retrieved
testContext.Properties["Name"] = "John";
}
}
静态类
或者,您可以有一个静态类,其唯一目的是初始化和存储您的字符串。
推荐阅读
- java - Cisco AXL - 执行 SQL 查询,解析响应
- swift - 无法将“String.Type”类型的值转换为 super.init 的预期参数类型“String”
- python - 无法使用openCV获取对象的中心
- java - 如何在 Spring Boot 中添加对 Swagger 的 I18N 支持
- angular - 如何处理角度异步进度列表的视图
- azure-active-directory - 如何使用 msal.js 从 B2C 强制刷新 id_token 并做出反应
- regex - SAS 从带有 prxchange 或 prxpson(prxmatch(prxparse())) 的字符串中提取子字符串
- python-3.x - 如何关闭 RaspberryPi Cam 的 AWB/AE(Raspi4、RaspiCamV2.1、Python、OpenCV)
- xml - 使用 XSLT 合并重复名称并替换为第一个属性 id
- ios - 如何将我的 json 数据传递给另一个类