【发布时间】:2010-07-15 18:59:12
【问题描述】:
我有一个包含 20 多个 .cs 文件的单元测试项目。我想在每个单独的测试之前运行一些设置代码。有点像 [TestInitialize] 属性的工作方式。但是,我需要将该属性放在所有 20 多个 .cs 文件中。
有没有一种方法可以将整个项目中的每个测试的初始化代码集中在一个地方?
谢谢!
-迈克
【问题讨论】:
标签: .net visual-studio unit-testing mstest
我有一个包含 20 多个 .cs 文件的单元测试项目。我想在每个单独的测试之前运行一些设置代码。有点像 [TestInitialize] 属性的工作方式。但是,我需要将该属性放在所有 20 多个 .cs 文件中。
有没有一种方法可以将整个项目中的每个测试的初始化代码集中在一个地方?
谢谢!
-迈克
【问题讨论】:
标签: .net visual-studio unit-testing mstest
Mike 唯一的引导钩子是 [ClassInitialize] 和 [TestInitialize] 以及它们的拆卸对应物。在这种情况下,我只是将通用逻辑外部化到它自己的类中,基本上遵循正常的 DRY 和 SoC 实践。通常,我在我的测试程序集中定义了几个服务和提供程序,而 xInitialize 方法只有 1 或 2 行代码来调用适当的提供程序。话虽如此,mpistrich 的回答也完全可以接受,我更喜欢分层而不是继承。
【讨论】:
我不知道这是否仍然是一个问题。但我发现另一种解决方案可以实现这一点: 打开 .testsettings 文件时,进入“设置和清理脚本”选项卡,您可以指定在测试运行之前和之后运行的脚本。
【讨论】: