有没有办法以编程方式找出 TestCategory 在标记为 [AssemblyInitialize] 的方法中运行的内容?
我想做一些特定于某个测试类别的配置。
有没有办法以编程方式找出 TestCategory 在标记为 [AssemblyInitialize] 的方法中运行的内容?
我想做一些特定于某个测试类别的配置。
不,TestCategory 仅由 MSTest 用于选择要运行的测试。测试运行时唯一可用的信息通过TestContext类公开。
一种(诚然令人讨厌的)方法是创建一个静态类或方法,可以懒惰地执行配置,并从具有指定类别的每个测试方法中调用它。但请注意,如果您操纵共享的全局状态,当 MSTest 以不同的顺序安排测试时,它可能会导致不可预知的行为。
在编写集成测试时,我发现最好在每个程序集中都有强依赖和配置内聚,即使这意味着您有许多小型测试程序集。换句话说,给定程序集中的所有测试都使用相同的设置并具有相同的依赖关系。这减少了先前测试更改某些全局状态(导致间歇性不稳定)的机会。它还经常使测试执行得更快,因为不同类别的测试不能重复地进行相互冲突的配置更改。