在AssemblyInitialize或ClassInitialize中检测TestCategory的方法?

时间:2012-06-20 21:07:02

标签: c# .net visual-studio-2010 mstest

有没有办法以编程方式找出TestCategory在标记为[AssemblyInitialize]的方法中运行的内容?

我想做一些特定于某个测试类别的配置。

1 个答案:

答案 0 :(得分:3)

不,只有MSTest使用TestCategory来选择要运行的测试。测试运行时可用的唯一信息通过TestContext类公开。

一种(诚然令人讨厌的)方法是创建一个可以懒惰地执行配置的静态类或方法,并从具有指定类别的每个测试方法中调用它。但要注意,如果你操纵共享的全局状态,当MSTest以不同的顺序安排测试时,它会导致不可预测的行为。

在编写集成测试时,我发现在每个程序集中具有强依赖性和配置内聚性会更好,即使这意味着您有许多小型测试程序集。换句话说,给定程序集中的所有测试都使用相同的设置并具有相同的依赖关系。这降低了先前测试改变一些全局状态(导致间歇性不稳定性)的可能性。它还经常使测试执行得更快,因为不同类别的测试不能重复进行相互冲突的配置更改。