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

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


当前回答

以我为例,我有3个测试项目,是用Visual Studio 2017创建的(但我认为这无关紧要),其中只有两个被测试资源管理器发现。我意识到第三个项目有不同版本的Microsoft.VisualStudio.QualityTools.UnitTestFramework dll。 我在NuGet管理器中更新了它,测试出现了。

其他回答

我得到的错误:“初始化客户端代理失败:无法连接到vste .discoveryengine.exe。”

尝试以管理员身份运行Visual Studio。这对我很管用。

有另一篇Stack Overflow文章讨论了这个错误,同样的解决方案也适用于他们。问题是为什么这样做有效。

您可以做的最简单的事情是,将这些文件从文件资源管理器拖放到Test项目中。再次构建项目,您就可以开始了!

OR

在文本编辑器中打开Test项目的.csproj文件,并手动包含要编译的文件名。在文件中搜索Compile标记,并添加要运行的文件。

<ItemGroup>
    <Compile Include="TestSettings.cs" />
    <Compile Include="TestLibrary.cs" />
    <Compile Include="UnitTest1.cs" />
</ItemGroup>

为文件添加Compile标记并保存它。现在进行测试您的单元测试文件将被检测并运行。

我尝试了以上所有的测试,但我的Visual Studio 2012仍然没有出现在测试中。最后,我去了一个测试类,发现它有一个RootNamespace。FolderName和我删除了。FolderName把类放在根名称空间和bingo所有的测试回来!

直到前几天,我才明白为什么它在原来的名称空间上工作得很好。

我反复遇到的一个问题是在Windows 8+上不能以管理员身份运行Visual Studio。我尝试了列出的几个建议,但直到我以管理员身份运行VS 2013,它们才出现单元测试(即使我的快捷方式设置为以管理员身份打开VS,要么打开解决方案文件,要么有时单击快捷方式,它实际上不会以管理员身份打开)。

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

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

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

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