为什么visual studio 2012找不到我的testing?
我有一些testing使用内置的Microsoft.VisualStudio.TestTools.UnitTesting
,但无法让他们运行。
我正在使用Visual Studio 2012终极版。
我有两个项目的解决scheme; 一个有testing, using Microsoft.VisualStudio.TestTools.UnitTesting
, [TestClass]
类之前, [TestMethod]
之前的testing方法和参考Microsoft.VisualStudio.QualityTools.UnitTestFramework
(版本10.0.0.0,运行时版本v2.0.50727)。 我已经尝试了networking框架3.5,4和4.5其他人给重定位错误。
我试图build立解决scheme和项目。 testing浏览器有消息“build立你的解决scheme来发现所有可用的testing。 点击“全部运行”来构build,发现并运行解决scheme中的所有testing。
所以问题是:如何让视觉工作室findtesting?
也试图按照此: http : //msdn.microsoft.com/en-US/library/ms379625%28v=VS.80%29.aspx但没有成功:我被困在部分入门,当被问到右键点击并selectcreate tests
。 没有create tests
。
我有这个testing(它编译,但不显示在testing资源pipe理器中):
using Microsoft.VisualStudio.TestTools.UnitTesting; namespace tests { [TestClass] public class SimpleTest { [TestMethod] public void Test() { Assert.AreEqual("a","a", "same"); } } }
我现在发现(见下面的删除答案),这是因为它是在一个共享的驱动器,但我还不知道如何解决它。 (关于安全设置可能)。
我有同样的症状,但在不同的情况下。
我不得不为Peter Lamberg的解决scheme增加一个额外的步骤 – 清理您的解决scheme/项目。
我的unit testing项目的目标是x64。 当我创build该项目时,最初是针对x86的。
切换到x64后,我所有的unit testing都消失了。
我不得不去testing菜单 – >testing设置 – 默认处理器架构 – > x64。
他们还没有出现。
做了一个构build。
依然没有出现。
最后做了一个清洁
然后他们出现了。
我发现“清洁解决scheme”和“清洁”在设置发生变化时能够让解决scheme玩起来非常有用。 有时我必须走极端,删除obj
和bin
目录并重build。
请将public关键字添加到您的类定义中。 你的testing类目前在它自己的程序集之外是不可见的。
namespace tests { [TestClass] public class SimpleTest { [TestMethod] public void Test() { Assert.AreEqual("a","a", "same"); } } }
这有时工作。
检查“testing”菜单下的处理器架构是否与用于构build解决scheme的处理器架构相匹配。
testing – >testing设置 – >默认处理器架构 – > x86 / x64
正如在其他文章中提到的,确保您打开了“testing浏览器”窗口。 testing – > Windows – >testing资源pipe理器
然后用testing重build项目应使testing出现在testing浏览器中。
编辑:正如Ourjamie指出的,做一个干净的构build也可能有所帮助。 除此之外,还有一件事是我遇到的:
在“configurationpipe理器”中,“构build”checkbox取消了我在解决scheme下创build的新testing项目。
转到生成 – >configurationpipe理器。 确保您的testing项目已经构buildcheckbox检查所有解决schemeconfiguration和解决scheme平台。
我有Visual Studio 2012,我看不到在testing资源pipe理器中的testing,
所以我安装了以下内容: NUnittesting适配器
这解决了我的问题!
在我最近的经验中,以上所有都没有奏效。 我的testing方法
public async void ListCaseReplace() { ... }
没有出现,但编译好。 当我删除了async
关键字时,testing显示在testing浏览器中。 这是async void
是一种“即忘即忘”的方法。 使方法async Task
,你会得到你的testing回来!
另外,没有将Test项目的configuration设置为“Build”也会阻止testing显示出来。 configurationpipe理器>检查您的testing构build。
由于该项目是在原来的海报上显示的共享驱动器上。 在加载并运行testing程序集之前,VS.NET需要信任networking位置。 阅读这篇博文 。
为了允许VS.NET加载networking共享的东西,需要将它们(共享)添加到受信任的位置。 要添加一个位置到一个完整的信任列表运行(很明显,根据需要修改你的环境):
caspol -m -ag 1.2 -url file:///H:/* FullTrust
要validation或列出现有的受信任位置,请执行
caspol -lg
我发现的一个问题是,如果解决scheme是从networking驱动器/networking位置/共享驱动器运行的testing资源pipe理器中找不到testing(没有显示)
您可以通过添加一个环境variables来解决此问题。
COMPLUS_LoadFromRemoteSources并将其值设置为1
我得到错误: "Failed to initialize client proxy: could not connect to vstest.discoveryengine.exe."
尝试以pipe理员身份运行Visual Studio。 这对我有效。
有另一个堆栈溢出post讨论这个错误 ,同样的解决scheme适用于他们。 问题仍然是为什么这个工作。
我有同样的问题..在我的情况下,它是由私人财产 TestContext
引起的。
将其更改为以下内容有助于:
public TestContext TestContext { get; set; }
在清理并构build解决scheme之后(如@Ourjamie的回答中所述),受影响的testing类中的testing方法在testing浏览器中可用。
我试图在networking共享上打开解决scheme时遇到了同样的问题。 在这种情况下,testing浏览器不会检测到unit testing。 解决scheme原来是:
控制面板 – > Internet选项 – >“安全性”选项卡 – >点击“Intranet”,将保存networking共享的服务器IP地址或主机名添加到“站点”列表中。
这样做后,我重新编译了解决scheme,现在testing出现了。 这应该与@BigT的答案非常相似。
快速检查清单,以解决一些常见的testing问题。 确保:
- testing类和testing方法是
public
- testing类具有
[TestClass]
属性 - testing方法有
[TestMethod]
属性
如果这没有帮助,请尝试清理,重build解决scheme并重新启动Visual Studio。
我有时会得到相同的症状。
我做的是:
1.closures“testing浏览器”窗口
2.清理解决scheme
3.重build解决scheme
4.从testing – > Windows – >testing资源pipe理器重新启动testing资源pipe理器窗口。
我在testing浏览器窗口中获得了我的testing。
从顶部的菜单栏…
testing – >运行 – >所有testing
您也可以从testing资源pipe理器中查看所有testing(testing – > Windows – >testing资源pipe理器)
进一步,VS 2012,如果你错过了任何东西尝试search使用右上angular的快速启动栏(Ctrl + Q)“testing”
希望这可以帮助。
我发现解决此问题的最佳方法是创build一个.proj msbuild文件,并将您有问题的unit testing项目添加到此文件中,并使用命令行版本的mstest执行testing。 我在我的app.config中发现了一个小configuration问题,它只在从mstest运行testing时才出现,否则testing项目build好了。 你也会发现这个方法的间接引用问题。 一旦你可以使用mstest从命令行运行unit testing,你可以做一个干净的解决scheme,重build解决scheme,你的testing应该被正确发现。
在我的情况下,这是另一回事。 我已经安装了一个软件包,然后卸载它并重新安装早期版本。 这留下了一个残余的configuration/runtime/asssemblyBinding/dependencyIdentity
在我的app.configredirect。 我必须纠正它。 我通过查看Output
窗口并在下拉列表中select“ Tests
”来计算出来。 错误消息在那里。 这是一个痛苦…我希望它可以帮助别人。
这更多的是帮助最终在这里的人,而不是回答OP的问题:
尝试closures和重新开放视觉工作室,为我做了诡计。
希望这有助于某人。
我知道这是一个较老的问题,但在Visual Studio 2015中,我遇到了新创build的testing类未被识别的问题。 试了一切。 最终导致这个问题的是这个class级没有被列入“项目”。 我只在重新启动Visual Studio时发现这一点,并注意到我的testing类不在那里。 在显示隐藏文件时,我看到它以及我写的其他课程都不包括在内。 希望有所帮助
当我尝试在另一台PC上构build解决scheme时,我经常遇到这个问题。
我也在使用NUnit和Specflow。 默认情况下我的testing项目的目标是X86但是我必须将其更改为X64。 步骤是1.testing菜单 – >testing设置 – 默认处理器架构 – > x64。 2.清理生成3.生成4.如果还没有testing显示。 5.转到工具扩展和更新然后安装NUnit和Specflow库6.清理生成7.生成
然后通常testing将出现在testing编辑器中。
我已经更新VS 2012到最新更新。 即视觉工作室更新3.这解决了我的问题。
对我来说,解决scheme稍微复杂一些。
我刚刚把一个现有的解决scheme带到我的机器上(从gitHub克隆),我们不跟踪Visual Studio创build的自动生成的.cs文件。 (对于每个function文件都有一个同名的.cs文件)
打开解决scheme时没有关联.cs文件实际上允许我导航到绑定的方法,所以它看起来好像specflow是正确连接,但我无法在testing资源pipe理器中查看testing名称。
对于这个问题,只需从项目中排除function文件,然后重新包括它们,强制VS重新生成这些自动生成的代码隐藏文件。
之后,我可以在testing浏览器中查看testing。
我的解决scheme从Microsoft Visual Studio 2012 Express for Web升级到Microsoft Visual Studio 2013时出现此问题。
我在2012年创build了一个unit testing项目,在2013年开始之后,unit testing项目不会在testing资源pipe理器中显示任何testing。 每次我尝试运行或debugging失败的testing时,都会在输出窗口中显示以下内容:
Failed to initialize client proxy: could not connect to vstest.discoveryengine.x86.exe
我还注意到,在debuggingtesting时,它启动了Visual Studio 2012的一个实例。这引起了unit testing项目仍然引用2012的事实。看着testing项目的参考,我意识到它是针对错误的Microsoft Visual工作室unit testing框架这个版本的Visual Studio的DLL:
C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll
我将版本号从11.0更改为12.0:
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll
我重build了所有的问题,并解决了这个问题 – 所有的testing都在testing资源pipe理器中find,现在所有的testing都能find并运行。
检查您的testing项目是否设置为仅在您的项目属性 – >签名中延迟签名。 如果是的话,取消select它并做一个干净的重build。
我试图在VS2013 Ultimate的networking共享上打开解决scheme时遇到同样的问题。
我通过打开来纠正了这个问题
控制面板 – > Internet选项 – >“安全”选项卡 – >点击“本地内部网”,点击网站,并确保“自动检测内部networking”打勾。
这些都是很好的答案,但是我还有另一个理由。 我刚碰到它。 在我的一个testing中,我有一个ReSharper消息,指出我有一个未使用的私人类。 这是我准备在即将到来的考试中使用的一门课。 这实际上导致我所有的testing消失。
检查引用程序集的可能有“复制本地”设置为“False”的任何程序集。
如果您的testing项目build立到它自己的文件夹(例如bin / Debug),并且项目依赖于另一个程序集,并且参考列表中的某个程序集标记为Copy Local =“False”,程序集将无法加载,因为缺less依赖关系在构build之后,您的testing不会加载。
看起来NUnit Framework 2.6.4不适用于NUnittesting适配器。 在网站上提到testing适配器只能用于NUnit Framework 2.6.3。
这是我的问题:1.我通过VS2012中的Nuget分别下载了NUnit和NUnittesting适配器。 不知何故NUnit更新到2.6.4突然间,我没有看到我的testing用例列出。
固定:
-
卸载Nuget和Nugettesting适配器
一个。 转至工具> Nuget> Nuget Pkgpipe理器>pipe理Nuget Pkg for Solution
湾 列出安装的软件包
C。 点击pipe理
d。 取消检查您的项目
-
安装包括NUnit 2.6.3框架的NUnittesting适配器
-
清洁/重build解决scheme
-
打开testing>testing浏览器>全部运行
我看到所有的testing用例
希望这可以帮助
这里没有任何解决scheme帮助我。 testing不会被发现一个解决scheme,而另一个解决scheme引用相同的项目工作正常。 我终于通过删除solutionname.v12.suo文件解决了这个问题。
我有同样的问题,但有点不同。
我正在使用Visual Studio 2012.出于某种原因,只有最初生成的文件的testing运行。 但在另一个文件中的testing没有运行。 尝试了不同的解决办法张贴在这里,没有工作。
最后我发现我在testing类中有一个私有方法,这是该类中的第一个方法。 我只是在testing方法后移动私有方法; 所以现在,具有[TestMethod]
属性的方法是该类中的第一个方法。 奇怪,但现在它的作品。
希望有一天能帮助别人。
testing不喜欢asynchronous方法。 例如:
[TestMethod] public async void TestMethod1() { TestLib oLib = new TestLib(); var bTest = await oLib.Authenticate(); }
做完这些之后:
[TestMethod] public void TestAuth() { TestMethod1(); } public async void TestMethod1() { TestLib oLib = new TestLib(); var bTest = await oLib.Authenticate(); }
它看到了testing。
添加我的答案,因为这是Google的最高结果。
我正在使用Visual Studio 2015和(不知不觉中 – 我刚刚运行Install-Package NUnit
)安装了NUnit3包NuGet到我的testing项目。 我已经安装了NUnittesting适配器扩展,我的testing仍然没有显示出来。
通过工具>扩展和更新安装NUnit3testing适配器为我解决了这个问题。