使用VS2010,我似乎无法添加其他测试方法。如果我像这样设置我的项目
[TestMethod]
public void Test1()
{
Assert.AreNotEqual(0,1);
}
[TestMethod]
public void Test2()
{
Assert.AreNotEqual(0,1);
}
我的测试视图中显示的唯一测试是Test1。如何确保Test2进入该列表?
修改 最初未创建的其他测试不会添加到测试列表中。因此,如果我在运行测试后添加Test3,则不会添加Test3。
答案 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)