Visual Studio无法运行测试类中的所有单元测试

8

我有一个单元测试类中的三个测试方法,但是Visual Studio只运行第二个测试,忽略了其他测试。

这是三个测试方法:

[TestClass()]
public class InsertionSortTest
{

    [TestMethod()]
    public void sortTest()
    {
        InsertionSort target = new InsertionSort(); // TODO: Initialize to an appropriate value
        int[] n = new int[] { 2, 1, 4 };
        int[] nExpected = new int[] { 1, 2, 4 };
        target.sort(ref n);
        CollectionAssert.AreEqual(nExpected, n);

    }

    [TestMethod()]
    public void sortTest2()
    {
        InsertionSort target = new InsertionSort(); // TODO: Initialize to an appropriate value
        int[] n = new int[] { 1, 2 };
        int[] nExpected = new int[] { 1, 2 };
        target.sort(ref n);
        CollectionAssert.AreEqual(nExpected, n);

    }

    [TestMethod()]
    public void sortTest3()
    {
        InsertionSort target = new InsertionSort(); // TODO: Initialize to an appropriate value
        int[] n = new int[] { 1, 2 };
        int[] nExpected = new int[] { 1, 2 };
        target.sort(ref n);
        CollectionAssert.AreEqual(nExpected, n);

    }
}

所以当我运行测试时,只有 sortTest2 被执行?我期望得到 3 个结果。但是我得到的是“1/1 通过了测试。测试名称:sortTest2”。那其他两个测试呢?

3
听起来好像只是在运行旧版本或类似的东西……尝试清理缓存并重新运行测试。 - gillyb
1
顺便提一下,请遵循.NET命名约定,并为您的测试方法命名,以便清楚地了解它们正在排序的场景。 (您可能也不需要“ref”...) - Jon Skeet
3个回答

6

在测试运行完成后,我发现有些测试被标记为“未运行”。原来这些测试由于发生了StackOverflowException异常而没有完成。


6

gillyb,是的,我认为你是对的。重新启动Visual Studio解决了这个问题。


1
这个问题已经让我吃了不少亏,因为测试项目没有在解决方案配置中被勾选构建。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接