Visual Studio 2013不会发现unit testing
在Visual Studio 2013中,我有一个简单的解决scheme,它由一个Web项目,一个库项目和一个unit testing项目组成。 当我打开解决scheme并尝试运行unit testing时,他们没有被visual studio发现。 要运行testing,我尝试进入菜单并selecttesting – >运行 – >运行所有testing或打开testing资源pipe理器窗口。 通过这些方法,visual studio在解决scheme中没有发现任何testing。
首先创build一个简单的unit testing项目,并尝试运行testing,Visual Studio知道发现testing,我可以运行它。 然后,如果我打开我以前的解决scheme,Visual Studio现在可以发现所有的testing。 我尝试保存我的解决scheme,但是closures并重新打开,而不是先创build一个unit testing项目,Visual Studio再次找不到testing。 这是一个非常奇怪的行为,我不知道这是为什么发生。
我曾经在这个项目中独自工作,使用与Visual Studio团队基础集成的源代码控制git。 当一个新的元素来到这个项目,并且当我需要通过在线的源代码控制来重新创build解决scheme时,visual studio的问题不会发现unit testing。 在此之前,所有的testing总是被视觉工作室发现。
为了创buildunit testing,我使用了DLL Microsoft.VisualStudio.QualityTools.UnitTestFramework。 我的Visual Studio版本是:Microsoft Visual Studio Express 2013 Web版本12.0.30723.00更新3.我的.net框架版本是4.5.50938。
我所有的testing都是这样的:
[TestClass] public class Service1Test { [TestMethod] public void Test1() { Assert.IsTrue(True); } }
有些事情我已经注意到我必须不时地做testing才能正常显示。
-
如果您的解决scheme位于受保护的驱动器中,您需要pipe理员访问权限进行读取/写入,则有时候只会有部分testing出现。 在这种情况下,肯定会以pipe理员身份运行VS。
-
如果您的解决scheme是64位,请确保“testing”>“testing设置”>“默认处理器架构”设置为x64。 有时它被设置为x86。 将其设置为x64,然后重build。
-
有时候只要重新启动Visual Studio就行了,因为testing浏览器会重新启动。
-
不要忘记实际构buildtesting项目/解决scheme。 (如果您希望使用其他项目构build,请右键单击解决scheme>属性>configuration属性>configuration>选中您的testing项目的“生成”框)
-
确保testing是在你的testing课的
public
部分
如果您使用NUnit,请确保先下载NUnit适配器。
转到工具→扩展和更新…→在线→search“NUnittesting适配器”。
确保你的testing课是public
所以可以find它。 如果你正在引用另一个类,请确保相同。
另外,有时如果你没有Asserts,或者你没有用[TestMethod]
装饰testing,testing可能不被识别。
还有2件事情:1)asynchronousunit testing充其量是有趣的,最糟糕的是没有。 看看斯蒂芬·克莱里 ( Stephen Cleary)的 这篇文章 ,如果你感兴趣的话,请保持在那里。
2)如果你使用NUnit,并遇到相同的问题,记住它是[TestCase]
的Nunit,而不是[TestMethod]
说了上面的话,下面是我在代码项目上发布的一篇文章 , MSTest
& NUnit
,如果你想旋转它,并确保你没有丢失任何东西。
我有同样的问题,但没有其他解决scheme的工作。 原来,我正在使用2个适配器的NUnit 3框架。
如果您使用NUnit 3,请转至扩展和更新并安装NUnit3testing适配器。
我不时有这个问题。 什么对我来说是closuresVisual Studio并转到文件夹:
%LocalAppData%\Microsoft\VisualStudio\12.0\ComponentModelCache
并删除它的内容。
一旦你打开Visual Studio并再次加载你的项目,testing浏览器应该包含你的testing
XUnit用户可能会注意到,“testing浏览器”窗口不再列出任何testing。 为了让testing再次发现,请尝试以下重点提示 。
如果在发现或运行testing时遇到问题,则可能是Visual Studio中损坏的runnercaching的受害者。 要清除此caching,请closuresVisual Studio的所有实例,然后删除文件夹%TEMP%\ VisualStudioTestExplorerExtensions。 另外,请确保您的项目仅与单个版本的Visual Studio Runner NuGet程序包(xunit.runner.visualstudio)链接。
对于未来的谷歌我有一个罕见的情况,造成了这一点。
在我的基础testing类中,我有一个名为TestContext的属性。 这干扰了MSTest的保留的TestContext属性,导致除了一个(没有从基地inheritance)之外的所有我的testing从VS / Resharper隐藏。
对我而言,它将“解决schemeconfiguration”更改为“debugging”(而不是“发行版”)。
我的问题是因为我的unit testing方法不是无效的 ,它正在接收参数。
尝试将所有项目构build为MSIL(任何CPU)而不是x86 / x64。 为我工作奇怪
虽然AndyG的解决scheme有效,但更持久的解决scheme可能是将PreferredToolArchitecture环境variables设置为“x64”,方法如下:
如何使Visual Studio使用本地amd64工具链
或通过:
- 控制面板| 系统和安全| 系统| 高级系统设置|环境variables
- PreferredToolArchitecture = x64
- DefaultToolArchitecture = Native64Bit
- PROCESSOR_ARCHITECTURE = x64
- ProcessorArchitecture = x64
我发现标记为async void
unit testing方法没有被VS Test Explorer发现。 这似乎是因为VS无法等待testing完成并决定是否成功。 如果你绝对需要有一个testing方法asynchronous运行,然后让它返回一个任务,而不是像async Task
。 我发现这解决了我的问题。
我遇到了同样的问题,而且我还记得(之前的情况),在解决scheme平台菜单上select“混合平台”以及其他答案。
转到Nuget包pipe理器并按照下面的步骤下载Nunit适配器。
进入项目菜单>configurationpipe理器检查您的testing项目平台匹配项目的其余部分,并检查生成,然后重build。
刚刚遇到这个以及我没有看到一个类似于我的类似的情况。
在我的testing项目的.csproj
文件中,NUnit参考隐私设置为False
:
<Reference Include="nunit.framework, Version=2.6.4.14350, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL"> <HintPath>..\packages\NUnit.2.6.4\lib\nunit.framework.dll</HintPath> <Private>False</Private> </Reference>
在我将<Private>
设置为True
它就起作用了。
我曾设法加上我的
public static void TestMethod1(){}
开始工作,一旦我删除静态….
你只需要安装这个软件包:
NUnit TestAdapter
我有完全相同的问题。
这是由于我添加到我的项目(3.2.0)和我已经安装的testing适配器(2.0.0)的NUnit版本不兼容。
要修复,使用“工具>扩展和更新”并searchNUnit3testing适配器,它发现了我的testing。
干杯
让我们只是说,为了参数的缘故,您需要在您的testing项目上使用X64体系结构,以便依赖性能够正确构build(就像我的情况一样)。 您可能需要在“ testing – testing设置”菜单下修改默认处理器架构。 设置这个到X64允许我的testing浏览器find我的testing使用Microsoft.VisualStudio.TestTools.UnitTesting。
对不起,join长列表,但我有一个完全不同的问题。 首先,我想提一下,当在testing资源pipe理器中单击“全部运行”时发现了我的问题,然后在Visual Studio中查看生成输出窗口。 你必须积极观看,随后消息消失。
至于这个问题,它看起来像在扫描testing期间,DLL被加载并且它的testingtypes被枚举。 这会导致引用被加载,如果在此过程中发生任何故障,testing将不会显示在资源pipe理器中。 我有两个问题,防止testingDLL成功加载:
- 在configuration文件中还有一个绑定redirect(redirect到比testing项目中引用的版本更低的NHiberate版本)。
- 冲突的程序集引用(第二级引用无法加载)。 AsmSpy是一个伟大的工具来寻找这些。
如果你从共享networking共享或我的文档目录中加载一个Visual Studio(我的案例是VS 2015社区)解决scheme,你将会遇到这个麻烦。 我通过将解决scheme及其基础项目移动到本地文件夹来解决此问题。
我遇到了同样的问题。 并调查,发现该DLL的不build立,并把它放在正确的文件夹。 只要我改变我的configuration他们出现了。 – 项目构build选项,应该使用什么文件夹? – 生成菜单项build立configuration,他们应该被检查。
为我修好了
对于Visual Studio 2013.5,清除解决scheme中的\ TestResults目录有帮助。 Visual Studio损坏了存储发现的testing的mdf文件,从而阻止了unit testing的发现。
确保您的所有项目都使用相同的configuration运行。 在你的项目的Properties => Debug => Platform下拉列表中select适当的平台(对于我来说,它是“Any CPU”),就像在其他项目中确定的一样。
- 我知道,如果解决scheme没有build立,unit testing就不会被发现,所以这是一个尝试(构build解决scheme)的东西,但是这个解决scheme就像问询台询问您的计算机是否插入…
- 干净的重build后没有解决我的问题,运行一个完整的批量构build确实解决了它。
有同样的问题; testing突然停止被发现。
Nunittesting适配器已经被禁用了。 点击在扩展pipe理器启用修复了我。
为了让testing显示在testing资源pipe理器窗口中,我必须安装NUnit3testing适配器3.0,这在Package Manager中是不可用的。
从https://visualstudiogallery.msdn.microsoft.com/0da0f6bd-9bb6-4ae3-87a8-537788622f2d下载;
我有同样的问题,直到我意识到我做了一个剪切/粘贴错误,并在testing之前离开[Test Method]
。
在我的情况下,问题是因为我的class
被标记为abstract
。
只要删除abstract
关键字。