我有一些测试是使用Microsoft.VisualStudio.TestTools内置的。单元测试,但不能让它们运行。

我使用visual studio 2012终极版。

我有两个项目的解决方案;一个有测试,使用Microsoft.VisualStudio.TestTools。UnitTesting, [TestClass]在类之前,[TestMethod]在测试方法之前,并参考Microsoft.VisualStudio.QualityTools.UnitTestFramework(版本10.0.0.0,运行时版本v2.0.50727)。我已经尝试过。net框架3.5,4和4.5其他人给出了一个重定向错误。

我已经尝试构建解决方案和项目。测试资源管理器显示“构建解决方案以发现所有可用的测试”。单击“全部运行”可在解决方案中构建、发现和运行所有测试。

问题是:如何让visual studio找到测试?


我也试过遵循这个:http://msdn.microsoft.com/en-US/library/ms379625%28v=VS.80%29.aspx但没有成功:当我被要求右键单击并选择创建测试时,我被困在了开始的部分。没有创建测试。


我有这个测试(它编译,但不显示在测试资源管理器):

using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace tests {
    [TestClass]
    public class SimpleTest {
        [TestMethod]
        public void Test() {
            Assert.AreEqual("a","a", "same");
        }
    }
}

我现在发现(见下面删除的答案),这是因为它在一个共享驱动器上,但我还不知道如何绕过它。(可能是关于安全设置的问题)。


当前回答

因为该项目是在一个共享驱动器上,原来的海报已经表明。VS.NET在加载和运行测试程序集之前需要信任网络位置。读一读这篇博客文章。

为了允许VS.NET加载网络共享的内容,需要将它们(共享)添加到可信位置。要将一个位置添加到完整的信任列表运行(显然根据您的环境需要进行修改):

 caspol -m -ag 1.2 -url file:///H:/* FullTrust

要验证或列出现有的受信任位置,执行以下命令:

 caspol -lg

其他回答

从菜单栏顶部…

Test ->执行->所有测试

也可以从“测试资源管理器”查看所有测试(“测试-> Windows ->测试资源管理器”)

进一步的VS 2012,如果你错过了什么,尝试使用快速启动栏在右上方搜索(Ctrl + Q)“测试”

希望这能有所帮助。

测试不喜欢异步方法。例如:

    [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();

    }

它看到了测试。

我在将我的解决方案从Microsoft Visual Studio 2012 Express for Web升级到Microsoft Visual Studio 2013时遇到了这个问题。

我在2012年创建了一个单元测试项目,2013年打开后,单元测试项目在测试资源管理器中不会显示任何测试。每次我试图运行或调试测试时,它都会失败,在输出窗口中显示以下内容:

    Failed to initialize client proxy: 
    could not connect to vstest.discoveryengine.x86.exe

我还注意到,在调试测试时,它正在启动Visual Studio 2012的一个实例。这让我意识到单元测试项目仍然引用了2012年。查看测试项目参考,我意识到它针对这个版本的Visual Studio的错误Microsoft 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

我重新构建了所有的测试,这解决了这个问题——所有的测试都在测试资源管理器中找到了,现在所有的测试都找到了,并且运行得很好。

我知道这是一个老问题,但在Visual Studio 2015中,我遇到了新创建的测试类无法识别的问题。尝试一切。最终的问题是这个类没有“包含在项目中”。我只是在重新启动Visual Studio时才发现这一点,并注意到我的测试类不在那里。在显示隐藏文件时,我发现它以及我编写的其他类都不包括在内。希望这能有所帮助

问题是测试运行程序配置为不从远程驱动器运行测试。当我将项目复制到本地驱动器时,它工作得很好,但我需要在共享驱动器上(不记得为什么)。

我读到过它可以配置为在共享驱动器上工作,但一直没有这样做,因为当我发现这个解决方案时,我已经在Debian上切换到MonoDevelop了。