MSTest没有找到新的测试

时间:2010-04-16 16:00:19

标签: visual-studio-2010 mstest

使用VS2010,我似乎无法添加其他测试方法。如果我像这样设置我的项目

[TestMethod]
public void Test1()
{
   Assert.AreNotEqual(0,1);
}

[TestMethod]
public void Test2()
{
   Assert.AreNotEqual(0,1);
}

我的测试视图中显示的唯一测试是Test1。如何确保Test2进入该列表?

修改 最初未创建的其他测试不会添加到测试列表中。因此,如果我在运行测试后添加Test3,则不会添加Test3。

7 个答案:

答案 0 :(得分:27)

在我卸载ReSharper并更新到Visual Studio 2010 SP1之后,我没有发现新的测试方法,遇到了同样的问题。

我通过转到工具>修复了问题。选项>测试工具>测试项目并取消选中“禁用测试方法的背景发现”

它重新打开了解决方案,但没有完全清理和重建。

答案 1 :(得分:7)

最简单的方法:重新打开解决方案。

您还可以打开测试列表文件(“解决方案项目”文件夹中的“vsmdi”文件)并点击“刷新”按钮。

有时也可以完全重建您的解决方案。

答案 2 :(得分:2)

对我来说,没有任何上述工作。我将我的csproj文件与一个有效的文件进行了比较,并将项目类型guid从其他测试项目添加到了无效的项目中。

因此,尝试将类型Guids添加到项目文件中,其中[TestClass]和[TestMethod]包含在文本编辑器中:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
...
    <ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
    </PropertyGroup>
...
</Project>

在测试列表编辑器中添加此项并刷新后,我立即看到了我的测试和CTRL-R-T的工作。

此致 迈克尔

答案 3 :(得分:0)

确保您的测试具有类的[TestClass]前缀和方法的[TestMethod]。我有一个案例,我没有意识到我正在尝试运行在另一个框架中编写的测试。 在我的情况下,它是[TestFixture]和[Test]。

答案 4 :(得分:0)

删除项目文件夹中扩展名为“.sln.docstates”的文件为我解决了这个问题。

不确定是否重要 - 但我也删除了TestResults文件夹中的所有文件。

Athadu

答案 5 :(得分:0)

For me, delete of .suo and .sdf files related to the solution helped. Right after reopening the solution, the tests were in the List Editor.

答案 6 :(得分:0)

我遇到了这个问题,解决方案非常简单:将 class 标记为public。我创建的测试类没有公共访问修饰符。

看看测试输出窗口,告诉了我我需要知道的一切。

Test Output Window