vstest.console.exe System.IO.FileNotFoundException入门

时间:2014-07-11 16:51:25

标签: c# unit-testing visual-studio-2013 mstest

我有一个简单的可执行项目和一个单元测试项目都在Visual Studio 2013中的相同解决方案中。我所有的单元测试在Visual Studio中都可以正常工作。我想用控制台应用程序vstest.console.exe玩*,但我很难开始。我怀疑我错过了一些非常简单的事情。我试着去实际的.exe所在的目录并运行:

  

C:\ BuildTest \帧\帧\ OBJ \调试和GT; vstest.console.exe   C:\ BuildTest \框架\ FrameUnitTests \ OBJ \调试\ FrameUnitTests.dll   / Platform:x64 / Tests:ConstructorTest

我得到了错误:

开始测试发现,请稍候...... 失败的ConstructorTest 错误信息:    测试方法FrameUnitTests.MainWindowPresenterTests.ConstructorTest抛出 例外:

  

System.IO.FileNotFoundException:无法加载文件或程序集   'Frame,Vers ion = 3.0.0.0,Culture = neutral,PublicKeyToken = null'或者一个   它的依赖关系。系统无法找到指定的文件.WRN:   程序集绑定日志记录已关闭。

我也尝试从单元测试dll所在的实际目录运行它:

C:\ BuildTest \框架\ FrameUnitTests \ OBJ \调试和GT; 并得到了相同的结果。

错误表明我需要以某种方式告诉vstest.console在哪里找到正在测试的主程序集。我该怎么做呢?有人能指点我一个例子吗?

我有兴趣使用vstest.console.exe,原因如下:我想获得所有单元测试(大约80个)的打印输出,以便在文档中使用。我找不到一个很好的方法来做到这一点。在我看来,vstest.console可能对此有所帮助。如果还有另一种方法可以获得我所有测试的清单,我想知道。不可否认,在我为此工作的时候,我可以简单地将每个测试题都输入到MSWord中,但我对于惩罚很贪婪,知道如何使用vstest可能会很好。

我尝试了John Koerner的建议(参见他的回答)以获得一份测试清单并得到以下结果,这可能暗示我出了什么问题:

C:\ BuildTest \ Frame \ FrameUnitTests \ _ obj \ Debug> vstest.console.exe / ListTests: FrameUnitTests.dll Microsoft(R)测试执行命令行工具版本12.0.21005.1 版权所有(c)Microsoft Corporation。保留所有权利。

测试运行将使用为框架Framework45和平台X86构建的DLL。弗洛 wing DLL(s)不会成为run的一部分: ACMFrameUnitTests.dll是为Framework Framework45和Platform X64构建的。  转到http://go.microsoft.com/fwlink/?LinkID=236877&clcid=0x409了解更多详情 管理这些设置。 错误:提供的测试容器都不匹配平台体系结构和 测试运行的.Net Framework设置。平台:X86 .Net框架:框架 work45。有关管理这些内容的详细信息,请转到http://go.microsoft.com/?link 设置。

1 个答案:

答案 0 :(得分:3)

如果您只需要一个测试列表,则只需运行以下命令:

  

“C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ Common7 \ ide \ CommonExtensions \ Microsoft \ TestWindow \ vstest.console.exe”/ListTests:UnitTests.dll