MSTest:如何在TestExplorer中更改TestMethod的名称?

Wim*_*ool 8 mstest visual-studio-2012

我目前正在构建一个示例应用程序,我使用MS Test在VS2012中实现基于场景的Given-When-Then风格的UnitTest项目.为此,我有一个抽象的Scenario(基础)类,它具有虚拟的Given() - 和When() - 在TestInitialization阶段运行的方法.然后存储When() - 方法的结果,并且可以在任何具体的Scenario类中使用任意TestMethods来验证,表示'Then'语句.一切都很完美.

不过还有一件事我想控制:所有TestMethods的名称都显示在Visual Studio的TestExplorer中.这是因为许多TestMethods具有相同或相似的名称,但是在不同的场景中执行(例如'ExpectedExceptionIsThrown').我原以为MS Test会支持这样的事情,也许是通过TestMethodAttribute的原生支持,如下所示:

[TestMethod("DisplayName here...")]
public void ThenThisShouldHappen()
{
  ...
}
Run Code Online (Sandbox Code Playgroud)

我查看了MS Test的API,但似乎无法找到任何方法来做到这一点.MS Test是否可以实现这一切?

djr*_*ipe 1

我自己在这个概念上挣扎了一段时间,直到我意识到您可以右键单击“测试资源管理器”区域并选择“分组依据”->“类”

这无论如何并不完美,但与测试播放列表和/或 Resharper 提供的所有功能相结合,可以稍微自定义您的测试体验。