c# - 单元测试 C# [TestInitialize] 并行执行的问题?
问题描述
我正在用 C# 执行单元测试——理论上我学会了使用它[TestInitialize]
来避免冗余代码。回到办公室,我做了这样的事情。
class Tests {
APIContext apicon;
Controller controller;
[TestInitialize]
public void TestInitialize()
{
apicon = new APIContext();
controller = new relevantController(cRep);
controller.Request = new HttpRequestMessage();
controller.Configuration = new HttpConfiguration();
}
我从一位同事那里得到了一条评论,即测试在 Build Server 上并行运行。该方法TestInitialize()
将在执行每个测试之前执行。因此,可以在测试运行时重新初始化这些字段。
这是对还是错?我还读到,当您并行运行测试时,运行器将为每个线程创建一个 TestClass 实例,因此在测试运行时不会触及这些字段?
解决方案
是的,在执行任何 TestMethod 之前,将调用具有 [TestInitialize] 属性的正确方法。你可以参考这篇文章更好地理解 [TestInitialize] 和 [TestSetup] 属性
推荐阅读
- css - 隐藏角落
- elixir - reason-react 找不到模块 bs-platform
- node.js - Electron 在 Windows 上运行 SQLlite 3 - 动态链接库 (DLL) 初始化例程失败
- python - 写入 HDFStore 时删除 Dataframe 索引
- powershell - 脚本任务的 PowerShell 参数
- redis - 每 24 小时增加关键天数
- c# - C# 中的 C 数组指定初始化程序
- html - 无法将页脚颜色一直到底部
- php - 从输入字段中的ajax获取值
- google-apps-script - 当输入日期为 12 月 30 日或 31 日时,Google 脚本格式将日期关闭 1 年