这在安装 SP1 之前有效。
namespace Test
{
public class Adder
{
public int Add(int n1, int n2)
{
return n1 + n2;
}
}
}
namespace AdderTest
{
[TestFixture]
public class Class1
{
[Test]
public void AddTest1()
{
var add = new Adder();
var res = add.Add(2, 3);
Assert.AreEqual(5, res);
}
}
}
此命令在安装 SP1 后仍然有效
vstest.console.exe /usevsixextensions:true /framework:framework45 /platform:x86 AdderTest.dll
这个没有,并且在我们团队中安装了 SP1 的每台 PC 上都失败了。
vstest.console.exe /enablecodecoverage /usevsixextensions:true /framework:framework45 /platform:x86 AdderTest.dll
错误:活动测试运行因执行过程意外退出而中止。检查执行过程日志以获取更多信息。如果未启用日志,则启用日志并重试。
日志显示以下错误:
V, 10664, 11, 2016/02/02, 15:00:09.114, 2115392201142, vstest.console.exe, TestRunRequest:SendTestRunMessage: 开始。
I, 10664, 11, 2016/02/02, 15:00:09.116, 2115392205435, vstest.console.exe, TestRunRequest:SendTestRunMessage: 已完成。
E, 10664, 10, 2016/02/02, 15:00:23.722, 2115441528953, vstest.console.exe, TAEF Engine Execution: [HRESULT: 0x800706BA] 无法为进程外测试执行创建测试主机进程。(测试主机进程无法运行,退出代码为 0xc0000005。无法建立与测试主机进程的通信。(连接尝试超时。))
似乎 SP1 安装了所有新的 vstest exe 和 DLL,似乎也安装了 TAEF 的东西,虽然我使用的是 Windows 7
使用 NUnit 2.6 和 VS Nunit 测试运行器扩展(也尝试了 NUint 3.0 和它的测试运行器 - 仍然坏了)
我们使用 VSTEST 是因为我们的代码是 C++/C# 和 64 位组件的组合。我们需要联合和覆盖测试。
更新:
使用 VS 2105 编写了一个智能测试 - 以同样的方式运行覆盖失败。