我有一个简单的可执行项目和一个单元测试项目都在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 设置。
答案 0 :(得分:3)
如果您只需要一个测试列表,则只需运行以下命令:
“C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ Common7 \ ide \ CommonExtensions \ Microsoft \ TestWindow \ vstest.console.exe”/ListTests:UnitTests.dll