我有一些测试是使用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");
        }
    }
}

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


当前回答

我在将我的解决方案从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

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

其他回答

当我尝试在不同的PC上构建解决方案时,我多次遇到这个问题。

我也在使用NUnit和Specflow。默认情况下,我的测试项目目标是X86,但我必须将此更改为X64。 步骤 1. 测试菜单->测试设置-默认处理器架构-> x64。 2. 清洁的构建 3.构建 4. 如果仍然没有检测结果 5. 进入Tools Extensions and Updates,然后安装NUnit和Specflow库 6. 清洁的构建 7. 构建

然后通常测试将显示在测试编辑器中。

这只咬了我一口。我向项目添加了一个测试,但无法在测试资源管理器中显示它。我以前的检查结果都出来了最后,我意识到我只是在查看一个特定的播放列表,并且我还没有将新的测试添加到播放列表中。如果你使用播放列表,选择“所有测试”,看看VS是否找到你的测试并在测试资源管理器中显示它们。然后你也可以将它们添加到所需的播放列表中。

Visual Studio 2015 (v.14.....) -同样的问题

原因:NUnit和NUnit测试适配器版本不同 在我的情况下,我有最新版本的NUnit(3.5)和NUnit测试适配器,但测试适配器不是正确的。对于NUnit3或更高级别,必须使用NUnit3TestAdapter

解决方案: 卸载了“有问题的”NUnint测试适配器,并安装了UNit3TestAdapter v.3.5.0(现在最新的是3.6.0,但没有使用它,以保持它与NUnit相同)

重新构建解决方案测试后弹出:)

我也有同样的问题。在我的例子中,它是由私有属性TestContext引起的。

将其更改为以下方式会有所帮助:

public TestContext TestContext
{
    get;
    set;
}

在清理和构建解决方案之后(如@Ourjamie的回答所述),受影响的测试类中的测试方法在测试资源管理器中是可用的。

看起来NUnit框架2.6.4不能很好地与NUnit测试适配器一起工作。在网站上,它提到测试适配器只适用于NUnit Framework 2.6.3。

这就是我的问题: 1. 我在VS2012中通过Nuget分别下载了NUnit和NUnit Test Adapter。不知怎的,NUnit更新到了2.6.4,突然我没有看到我的测试用例被列出。

Fix:

卸载Nuget和Nuget测试适配器 a.进入“Tools> Nuget > Nuget Pkg manager > Manage Nuget Pkg for Solution” b.列出已安装的包 c.单击“管理”。 d.取消你的项目 安装NUnit测试适配器,包括NUnit 2.6.3框架 清洁/重建解决方案 打开Test > Test Explorer >全部运行

我看到所有的测试用例

希望这能有所帮助