为什么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玩起来非常有用。 有时我必须走极端,删除objbin目录并重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问题。 确保:

  1. testing类和testing方法是public
  2. testing类具有[TestClass]属性
  3. 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用例列出。

固定:

  1. 卸载Nuget和Nugettesting适配器

    一个。 转至工具> Nuget> Nuget Pkgpipe理器>pipe理Nuget Pkg for Solution

    湾 列出安装的软件包

    C。 点击pipe理

    d。 取消检查您的项目

  2. 安装包括NUnit 2.6.3框架的NUnittesting适配器

  3. 清洁/重build解决scheme

  4. 打开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适配器为我解决了这个问题。