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

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


当前回答

我在VS2013终极版中遇到了同样的问题。我的问题是我在创建Windows服务时忘记卸载它。因此,服务正在运行,而VS无法访问其中一个dll,这导致整个测试套件根本没有加载。

其他回答

我有时也会有同样的症状。

我所做的是: 1. 关闭测试资源管理器窗口 2. 清洗溶液 3.重新构建解决方案 4. 从Test -> Windows ->测试资源管理器重新启动测试资源管理器窗口。

我在测试资源管理器窗口中得到了我的测试。

这更多的是为了帮助那些最终来到这里的人,而不是回答OP的问题:

尝试关闭和重新打开视觉工作室,为我做的把戏。

希望这能帮助到一些人。

另一个可能阻止发现测试的问题,通常在“测试”输出窗口中会出现如下消息:

Failed to configure settings for runsettings plugin 'VSTest Run Configuration' as it threw following exception:
'An error occurred while parsing EntityName. Line 1, position 8.'
Please contact the plugin author.

这可能是因为路径或文件名中的字符需要转义才能解析为xml。特别是&字符,如<和>不允许出现在目录或文件名中。这将导致测试发现出错,无法识别测试,但我仍然可以通过单击空白处的Resharper手动运行测试。

对我来说,解决方案没有那么复杂。

我只是把一个现有的解决方案带到我的机器上(从gitHub克隆),我们不跟踪Visual Studio创建的自动生成的.cs文件。(每个特性文件都有一个同名的。cs文件)

在没有关联的.cs文件的情况下打开解决方案实际上允许我导航到绑定的方法,因此specflow似乎正确地连接起来了,但我无法在test Explorer中查看测试名称。

对于这个问题,简单地从项目中排除特性文件,然后重新包含它们,迫使VS重新生成这些自动生成的代码隐藏文件。

之后,我就可以在测试资源管理器中查看测试了。

我在尝试在网络共享上打开解决方案时遇到了同样的问题。在这种情况下,测试资源管理器不会检测到任何单元测试。解决方案是:

控制面板-> Internet选项->“安全”选项卡->单击“内网”,将持有网络共享的服务器IP地址或主机名添加到“站点”列表中。

在此之后,我重新编译了解决方案,现在出现了测试。 这应该与@BigT给出的答案非常相似。