Visual Studio 2013不会发现单元测试
我在Visual Studio 2013中有一个简单的解决方案,它由一个Web项目,一个库项目和一个单元测试项目组成。 当我打开解决方案并尝试运行单元测试时,它们不会被visual studio发现。 要运行测试,我尝试进入菜单并选择测试 - >运行 - >运行所有测试或打开测试资源管理器窗口。 通过那些方法,visual studio在解决方案中没有发现任何测试。
首先创建一个简单的单元测试项目并尝试运行测试,Visual Studio知道发现测试并且我可以运行它。 然后,如果我打开以前的解决方案,Visual Studio现在可以发现所有的测试。 我尝试保存我的解决方案,但关闭它并重新打开,但没有首先创建单元测试项目,Visual Studio再次找不到测试。 这是一个非常奇怪的行为,我不知道为什么会发生这种情况。
我曾经在这个项目中独自工作,它使用与Visual Studio团队基础集成的源代码控制git。 当一个新元素进入项目并且需要通过在线源代码控制重新创建解决方案时,visual studio的问题不会发现单元测试。 在此之前,所有测试一直由visual studio发现。
为了创建单元测试,我使用了dll Microsoft.VisualStudio.QualityTools.UnitTestFramework。 我的Visual Studio版本是:Microsoft Visual Studio Express 2013 for Web版本12.0.30723.00更新3.我的.net框架版本是4.5.50938。
我所有的测试都是这样的:
[TestClass]
public class Service1Test
{
[TestMethod]
public void Test1()
{
Assert.IsTrue(True);
}
}
有些事情我注意到我必须不时地做测试才能正常显示。
如果您的解决方案位于受保护的驱动器中,您需要管理员访问权限进行读取/写入,则有时候只会有部分测试出现。 在这种情况下,肯定会以管理员身份运行VS。
如果您的解决方案是64位,请确保“测试”>“测试设置”>“默认处理器架构”设置为x64。 有时它被设置为x86。 将其设置为x64,然后重新构建。
有时只是重新启动Visual Studio会有诀窍,因为测试浏览器会重新启动。
不要忘了实际构建测试项目/解决方案。 (如果您希望使用其余项目构建它,请右键单击解决方案>属性>配置属性>配置>选中您的测试项目的“生成”框)
确保测试在您的测试课程的public
部分
如果您使用NUnit,请确保首先下载NUnit适配器。
转到工具→扩展和更新...→在线→搜索“NUnit测试适配器”。
确保您的测试课程是public
因此可以找到它。 如果你引用另一个课程,请确保相同。
另外,有时如果你没有Asserts,或者你没有用[TestMethod]
装饰测试,测试可能无法识别。
还有2件事情:1)异步单元测试充其量是有趣的,最坏的情况是没有。 看看斯蒂芬·克莱里的这篇文章,如果它感兴趣,请继续阅读。
2)如果你使用NUnit并且遇到同样的问题,请记住它是[TestCase]
for Nunit,而不是[TestMethod]
说完上面的内容,这里是我在代码项目上发布的一篇文章, MSTest
和NUnit
都是MSTest
,如果你想让它旋转并确保你没有遗漏任何东西。