22

我们在项目中使用 Visual Studio 2012 和 Team Foundation Server 2010。由于我们使用的是 Microsoft Fakes,因此我们可能没有使用 Team Build 2010 的启动测试功能,因此我创建了一个构建活动,它调用 VSTest.Console.exe 并传递测试程序集。这种方法对我们来说效果很好。但是,在最近签入后,我们在执行 Vstest.console.exe 时收到以下错误

错误:调用执行程序“executor://mstestadapter/v1”时发生异常:对象引用未设置为对象的实例。

我将二进制文件复制到我的本地机器,并且能够再次得到错误。有趣的是,我们在签入前运行了一个开发版本,它运行相同的 vstest.console.exe 并具有相同的参数并且可以正常工作。我的机器上有两个文件夹,一个可以正常工作,另一个不能。编译后的程序集看起来大小相同,并且没有太大的差异。

我尝试使用进程监视器,但除了进程返回退出代码 1 之外找不到任何明显的东西。有人知道这个错误吗?有什么方法可以从我的测试运行中找到更多信息?

问候,

哈米德

4

8 回答 8

6

我们找到了问题的根源。我们正在使用 Entity Framework 5.0,并且我们还遇到了一些测试程序集以 .Net 4.0 为目标而一些以 .Net 4.5 为目标的情况。

当我们尝试运行测试以使针对不同版本的 .Net 框架和使用 Entity Framework 5.0 的程序集在同一个测试 (vstest.console.exe) 进程中运行时,我们会收到此错误。

我认为这与 Entity Framework 5.0 附带两个版本(net40 和 net45)的方式有关。一旦在该过程中加载了一个版本的库,就无法加载另一个版本,这会导致错误。

于 2013-01-30T15:56:43.943 回答
4

这对我有用:在 Visual Studio 中,测试 -> 测试设置 -> 默认处理器架构 -> X64。

虽然它可能无法解决每个人的问题,但希望它对你们中的一些人有所帮助。

于 2017-11-29T12:30:43.403 回答
3

我刚才在Visual Studio 2017中使用新的MSTest.FrameworkMSTest.TestAdapter(以便能够使用Live Unit Testing)收到了相同的错误消息。原来我在我的解决方案中使用了这些包的多个版本。将它们合并到最新版本解决了这个问题。

于 2017-06-15T12:22:56.727 回答
2

AssemblyInfo当在项目中指定以下内容时,我在主题中指定了相同的错误AssemblyAttribute

[assembly: AssemblyCulture("en")]

如果attribute存在,则单元测试的运行将失败。如果我删除这行代码或删除en语言,则单元测试的运行会成功。

于 2013-04-18T08:24:36.193 回答
2

调用执行程序“executor://mstestadapter/v2”时发生异常

我的 BuildAgents 文件夹中有多个 TestAdapter 和 TestFramework,删除 v1.1.11 版本解决了这个问题:

在此处输入图像描述

于 2017-06-28T04:48:28.330 回答
2

这发生在我最近在 VS 2019 中。使用 NuGet 更新到最新版本的 MSTest.TestAdapter 和 MSTest.TestFramework 为我解决了这个问题。

于 2021-04-05T15:59:56.770 回答
0

我尝试了网上的一切来解决这个异常。最后,我通过安装 Visual Studio 2013 的 Update v4(我目前正在使用)解决了这个问题。希望能帮助到你!

于 2014-11-28T18:40:29.223 回答
0

删除 app.config 和 packages.config(如果存在)并通过 nuGet 包重新安装实体框架对我有用。

于 2015-03-29T05:31:59.550 回答