VS 2008 / MSTest - 如何运行所有测试的子集?

时间:2009-11-21 06:39:38

标签: visual-studio-2008 mstest

我刚开始在Visual Studio项目中使用MSTest(NUnit一直是我之前使用过的),我有几个问题。

我看到如果我右键单击一个测试方法并选择运行测试,它将测试一个方法。好。但有没有一种方法可以设置一个测试运行,只测试我选择的x,而不是所有的y?我看过测试菜单及其中的选项,但我无法弄清楚如何做到这一点。

另外,我如何调试我的测试子集?现在,如果我调试我的MSTest项目,它们都会运行。对不起初学者的问题,我一直在讨论菜单选项,但在这些问题上没有任何问题。谢谢!

4 个答案:

答案 0 :(得分:3)

Visual Studio允许创建测试列表,它完全符合您的要求。见这里:http://msdn.microsoft.com/en-us/library/ms182462.aspx

此链接也可能有用:http://freekleemhuis.com/2008/04/20/unit-testing-in-visual-studio-2008-part-1/

答案 1 :(得分:2)

Kona适合您希望维护的列表;我发现很多时候我不需要经得起时间考验的列表,只需要一个我可以在接下来的几分钟/小时内运行的列表。

在这种情况下,我使用“测试视图”窗口,突出显示您要运行的内容( CTRL +左键单击表示多个)并按下运行按钮。

善,

答案 2 :(得分:0)

我很惊讶地看到答案中没有的另一个选项是当前语境中的运行测试。如果您希望运行的测试子集位于相同的测试类或相同的命名空间中,则可以将它们作为一组运行,而无需对列表或选择执行任何操作。 ctrl r + t 将在游标范围内运行测试。

我觉得这很有用,因为感兴趣的测试(或者很可能受到变化的影响)往往会被定位到同一个测试类中。此外,测试列表是另一个要维护的部分。我注意到添加新测试并重命名旧测试会破坏我所做的列表。因此,如果您有一个完善的团队需要作为一个单元进行测试,那么测试列表可能是最有用的。

例如,如果光标在测试本身中,它将只运行该测试。向上移动几行到测试之间的空间,您将在该类中运行所有测试。您还可以将光标移动到类的外部,并运行该命名空间中的所有测试。

namespace Tests
{
    // Cursor here to run all tests in Tests
    [TestClass()]
    public class ClassOfTests
    {
        // Cursor here to run all Tests in this class
        [TestMethod()]
        public void MethodUnderTest_WithThisSetup_ReturnsValue()
        {
            // Cursor here to only run this test
        }

    }

}

答案 3 :(得分:0)

我在这个非常古老的问题上发布了更新的答案。首先,您需要在要组合在一起的测试方法的顶部添加[TestCategory("name of my category goes here")]属性。该字符串定义了 trait 。您可以使用VS2017中的测试资源管理器按特征分组/管理测试。

还有一些方法可以从命令行运行测试组。 Here is the documentation