我尝试使用MSTest在命令行上运行.NET单元测试
我的命令是
"C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\MSTest.exe" /testcontainer:"full path of dll" /resultsfile:TestResults.trx
运行时返回
开始执行......
没有要执行的测试。
单元测试在VS 2012 IDE中完美运行。
我需要做些什么才能让它在cmd线上运行?
答案 0 :(得分:9)
就我而言,当我切换到.NET Framework 4.6.1时,我开始在命令行上获得“没有要执行的测试”。我必须从MSTest.exe切换到VSTest.Console.exe,它才能正常工作。
一些有关如何使用vstest.console.exe的说明在这里- https://msdn.microsoft.com/en-us/library/jj155800.aspx
也请检查一下- https://msdn.microsoft.com/en-us/library/ms182486.aspx
答案 1 :(得分:6)
事实证明我需要使用nunit-console,因为我的测试是在nuint框架中编写的。
生活和学习我猜
答案 2 :(得分:2)
我得到同样的消息"没有执行测试"。
我发现的是我的一个愚蠢的错误 - 在命令行中,我使用MVCProj09292016.dll(我的项目DLL)用于 testcontainer:/ 而不是使用MVCProj09292016。测试 .dll(我的测试项目程序集)。
底线是检查你是否在命令行中使用了正确的dl名称:它应该是你的 MStest 项目程序集,在我的例子中它是MVCProj09292016.Tests.dll
答案 3 :(得分:2)
创建一个.Net Framework单元测试项目。
管理nuget软件包->删除“ MSTest.TestFramework”和“ MSTest.TestAdapter” nuget软件包。
向“ Microsoft.VisualStudio.QualityTools.UnitTestFramework” 10.0.0.0添加程序集引用。
重建项目,并验证输出路径(bin \ debug)是否没有任何_MSTest_TestAdapter * .dll程序集 这对我有用。
答案 4 :(得分:0)
vstest.console.exe [assembly.dll] /logger:trx;LogFileName=[filename].trx
1.打开交叉工具命令提示符(使用windows搜索)
选择:VS 2009的Cross Tools Command Prompt
[]
2. 打开交叉工具命令行。
3. 导航到您项目的 Bin 文件夹
4. 在 Cross Tools 命令行中复制/粘贴 Bin 文件夹的补丁
示例:
然后运行以下命令:
vstest.console.exe [assembly.dll] /logger:trx;LogFileName=[文件名].trx
答案 5 :(得分:-1)
试试这个:
"C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\MSTest.exe" /testcontainer:full path of dll /resultsfile:TestResults.trx
即在你的dll路径周围没有“”