如何从命令行运行一个MSTest DLL

8
任何人都知道如何在命令行中运行使用mstest构建的单元测试dll,而无需运行VS吗?
考虑到机器上安装了.NET 4.0和VS2010。
4个回答

16

我自己没有做过,但我想使用mstest命令行可能是前进的方式……如果你已经尝试过,并遇到问题,请提供更多细节。

mstest /testcontainer:path\to\tests.dll

编辑:如评论中所述,您应该在将正确的目录添加到路径后执行此操作,或者包括mstest.exe的完整路径。


是的,但你必须在VS内运行它,而我需要不依赖VS的版本。 - Omu
1
@ChuckNorris:不是这样的。你需要从命令行中运行它。这就是为什么页面的标题是“MSTest.exe 命令行选项”。 - Jon Skeet
尝试在您的计算机上键入mstest(我已经尝试了),但它告诉我该命令未被识别。 - Omu
1
@ChuckNorris:在发布答案之前,我确实尝试过输入mstest。它告诉我它已被识别。(我运行了mstest /h并得到了帮助。)你需要在路径上有正确的值,但那是另一回事。最简单的方法是调用vcvarsall.bat,但这与运行Visual Studio完全不同...如果你真的不想把东西放在路径上,你可能只需明确指定mstest.exe的路径... - Jon Skeet
2
好的,对我来说它在C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE。 - Omu

4

快速回答:

你必须使用/testcontainer选项和/category选项一起来选择运行哪些类别中的测试。例如,下面的命令在解决方案文件夹中运行,并运行既属于Priority 1又属于ShoppingCart类别的测试。

MSTest /testcontainer: testproject2\bin\debug\testproject2.dll /category:"Priority1&ShoppingCart"

注意

由于测试组件文件位于不同的文件夹中,需要使用相对路径。

如果您正在使用测试列表,最好使用/testmetadata选项和/testlist选项一起使用。例如,以下命令在解决方案文件夹中运行。因为测试元数据文件也驻留在该文件夹中,所以无需路径:

MSTest /testmetadata:Bank.vsmdi /testlist:balancetests

详细:

从命令行运行测试

1.打开Visual Studio命令提示符。

要执行此操作,请单击“开始”,指向“所有程序”,指向“Microsoft Visual Studio 2010”,指向“Visual Studio工具”,然后单击“Visual Studio命令提示符(2010)”。

默认情况下,Visual Studio命令提示符打开到以下文件夹:

:\Program Files\Microsoft Visual Studio 10.0\VC

注意

要更改命令提示符窗口默认打开的文件夹,请单击“开始”,指向“Microsoft Visual Studio 2010”,指向“Visual Studio工具”,右键单击“Visual Studio命令提示符(2010)”,然后单击“属性”。在“Visual Studio命令提示符(2010)属性”对话框中,您可以在“起始位置”框中更改默认文件夹的路径。

2.要么更改目录到您的解决方案文件夹,要么在步骤3中运行MSTest.exe程序时,指定元数据文件或测试容器的完整路径或相对路径。

要识别您的解决方案文件夹,首先要识别Visual Studio项目文件夹。要执行此操作,请在Visual Studio中单击“工具”菜单上的“选项”,然后单击“项目和解决方案”。在“Visual Studio项目位置”下,您会看到一个路径,如下所示:

:\Documents and Settings\\My Documents\Visual Studio\Projects

您的解决方案文件夹通常是此Projects文件夹的子文件夹,例如以下示例中的Bank文件夹:

:\Documents and Settings\\My Documents\Visual Studio\Projects\Bank

3.运行MSTest.exe程序。

运行MSTest.exe时,必须使用/testmetadata选项或/testcontainer选项指定测试元数据文件或测试容器。您仅使用/testmetadata选项一次,以指示一个测试元数据文件。您可以多次使用/testcontainer选项,以指示多个测试容器。

如果需要,包括元数据文件或测试容器所在文件夹的路径。测试元数据文件位于解决方案文件夹中。

根据测试类型,测试容器是XML文件、从测试项目构建的程序集或其他位于测试项目文件夹中的文件。

Source: http://msdn.microsoft.com/en-us/library/ms182487(v=vs.100).aspx

我指定了没有运行VS。 - Omu
嗯,我不是完全确定,我需要调查一下。 - RaM
2
如果指定“打开Visual Studio命令提示符”,则+1,否则除非我们设置路径或显式指定mstest.exe的位置,否则无法从常规命令提示符识别mstest.exe。 - Mauricio Quintana

2
尝试这个。
mstest.exe /testcontainer:c:\projects\MyTests\Sampe.Tests.dll

0
现代替代`mstest`的工具是VSTest.Console.exe。该工具位于`\Common7\IDE\CommonExtensions\Microsoft\TestWindow`目录下。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接