visual-studio - VS.Net 单元测试——可能有项目范围的测试设置?

标签 visual-studio unit-testing configuration

在测试文件 (MyTest.cs) 中,可以在类和单个测试级别进行设置和拆卸。整个项目是否存在类似的钩子(Hook)?整体解决方案?

最佳答案

不,我不相信他们会这样做。

通常,当人们问这个问题时,这是因为他们的测试依赖于一些繁重的东西,比如需要为每次测试通过重置的数据库设置。通常在这里做的正确的事情是模拟/ stub /伪造依赖关系并删除导致问题的部分。当然,您这样做的原因可能完全不同。

更新:所以再想一想,我认为你可以用属性和静态类型做一些事情。您可以向每个测试程序集添加程序集级别属性并将其传递给静态类型。

[OnLoadAttribute(typeof(ProjectInitializer))]

当程序集加载时,类型将得到解析,并且它的静态构造函数将在第一次解析时执行(当加载程序集时)。

在解决方案级别做某事要困难得多,因为它取决于您的单元测试运行程序如何处理测试以及它如何将测试加载到 AppDomain、每个测试、每个测试类或每个测试项目。我怀疑大多数运行者会为每个项目创建一个新的 AppDomain。

我并不完全推荐这个,因为我没有尝试过,可能会有一些影响。这是一个你可能想尝试的想法。另一种选择是从一个公共(public)基类派生所有测试,该基类具有一个构造函数,该构造函数解析一个单例,该单例反过来执行您的设置。这不那么骇人听闻,但意味着有一个共同的基类。您还可以使用我怀疑的面向方面的方法。

希望这可以帮助。这些只是关于如何做到这一点的想法。

阿德

关于visual-studio - VS.Net 单元测试——可能有项目范围的测试设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2715553/

相关文章:

c++ - Microsoft Visual Studio ~ C/C++ Runtime Library ~ 静态/动态链接

c# - 如何对 Entity Framework Code First 映射进行单元测试?

java - Spring Boot @ConditionalOnProperty 不解析属性

c# - 有没有一种方法可以仅使用XAML来基于“自身文本”更改Textblock前景?

.net - 跨多个解决方案重构共享代码

java - 如何替换对被测试类的私有(private)方法的调用

configuration - 在Grails中在运行时创建 Camel 路线

grails - 具有连字符名称的Grails插件的命名约定

visual-studio - 使用 nsight 的 "Start CUDA debugging"时忽略断点

.net - JustMock vs. TypeMock vs. 其他