2

我在 Visual Studio 2013 的单元测试中使用了 Moq。我需要使用“vstest.console.exe”在命令行中运行测试用例。

尝试这样做时,我收到此错误:

错误:调用执行程序“executor://mstestadapter/v1”时发生异常:无法加载文件或程序集“Codex.Repository,verion=1.0.0.0,Clture-neutral,PublicKeyToken=null”或其依赖项之一。该系统找不到指定的文件。

这是我用来运行测试的命令:

vstest.console.exe "C:.../Codex.repository.unittests.dll" /UseVsixVersion /Framework:framework45

当尝试使用“/Tests:”标签单独执行测试用例时,我收到了更详细的错误消息:

无法加载文件或程序集“最小起订量,版本=4.2.1502.911,文化中性,PublicKeyToken=69f4...”或其依赖项之一。系统无法归档指定的文件。警告:程序集绑定日志记录已关闭。要启用程序集绑定失败日志记录,请将注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) 设置为 1。注意:与程序集绑定失败日志记录相关的性能会有所下降。要关闭此功能,请删除注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog]。

所以现在我知道原因是在我的测试用例中使用 Moq。

我怎么解决这个问题?

4

2 回答 2

2

最初我使用的是 obj 文件夹中的单元测试 dll 文件:

c:\>vstest.console.exe "..\obj\release\unittests.dll"

Visual Studio 将所有依赖的 .dll 文件放在 bin 文件夹中,因此我更改为:

c:\>vstest.console.exe "..\bin\release\unittests.dll"

问题解决了!

于 2015-05-04T15:09:31.667 回答
1

您需要确保将这些依赖项设置为“Copy Local = True”,这样vstest.console才能在测试程序集旁边找到它们。

于 2015-05-04T14:58:38.777 回答