Visual Studio 2012测试类别层次结构(测试资源管理器)

laj*_*nto 7 c# testing unit-testing mstest visual-studio-2012

我正在测试一个相当大的项目(C#,VS2012),我需要在测试层次结构中安排我的单元测试(例如:现在我有43个测试用例).我真的需要层次结构.

我已经定义了测试类别,测试资源管理器按特征显示了测试用例.我有这种方式的类别(一个测试有几个类别)

  • TestCase01:MainTestType,SubTestType,SubsubTestType
  • ...
  • TestCase10:MainTestType,SubTestType,SubsubTestType
  • TestCase11:MainTestType,SubTestType2,SubsubTestType2
  • ...
  • TestCase15:MainTestType,SubTestType2,SubsubTestType2

定义如下:

    [TestMethod]
    [TestCategory("MainTestType")]
    [TestCategory("SubTestType")]
    [TestCategory("SubsubTestType")]
    public void MyTestCase()
    { /* etc. */
Run Code Online (Sandbox Code Playgroud)

但测试资源管理器显示下一个:

  • MainTestType:具有MainTestType类别的所有测试
  • SubTestType:具有SubTestType类别的所有测试
  • 等等...

所以我真的很想念层次结构.我试过"Cat1\Cat2\Cat3"甚至用/.但没有显示层次结构.你知道怎么做,还是一个可以为我做的免费插件?

我还需要这些类型的分类,因为我们经常从命令行运行测试,mstest.exe可以运行一个类别的测试(例如所有MainTestType或SubTestType).(我坚持使用mstest,因为团队的一半使用vs2010).但对于vs2012来说,解决方案已经足够了.

先感谢您.

laj*_*nto 6

由于目前我不支持搜索的内容,因此我做了下一个解决方法:

  • 建立项目
  • 运行MSText进行所有测试 - > .trx输出
  • 简单的winforms/wpf程序,解析.trx,获取测试用例并在树视图中显示它们
  • 现在我们可以从这个应用程序为所选节点运行mstest - >创建.trx输出(可以在VS中打开)

我使用.trx是因为我不需要解析程序集,mstest.exe就可以了.测试类别是这样做的:

[TestCategory("MainTestType")]
[TestCategory("MainTestType/SubTestType")]
[TestCategory("MainTestType/SubTestType/SubsubTestType")]
Run Code Online (Sandbox Code Playgroud)

所以这是一个简单的解决方法,只有一个二进制文件,开发人员也可以使用.播放列表的问题在于它们也没有分层次.

  • 你可以分享你的实用程序,例如On GitHub吗? (3认同)