我必须使用MSTest运行我们的测试,我的问题是MSTest在许多子文件夹中创建和操作(TestResults是根文件夹),我们的测试引用了项目其他部分的一些脚本,因此如果从与解决方案不同的路径执行,它们就会失败。
有什么方法可以强迫MSTest不构建和部署解决方案,但只是在我启动它的同一个文件夹上运行测试(即bin / Debug)?我一直在努力使用.testsettings文件,但不会太过分。
答案 0 :(得分:0)
不确定我的问题是对的,但我认为答案是肯定的。确切地说,mstest不需要构建程序集。您可以指向包含[TestClass] / [TestMethod]的任何程序集,mstest将运行测试而不进行任何编译。
这是一个例子: 使用Microsoft.VisualStudio.TestTools.UnitTesting;
namespace UnitTest
{
[TestClass]
public class UnitTest1
{
[TestMethod]
public void TestMethod1()
{
}
}
}
只需在带有msbuild的VS中构建它。这将创建以下程序集。在我的情况下是:
UnitTest.dll
下:
C:\tmp\unittest\UnitTest\UnitTest\bin\Debug
然后你只需运行:
C:\tmp\unittest\UnitTest\UnitTest\bin\Debug>mstest /testcontainer:UnitTest.dll
请注意,您不能在此指向任何dll文件。
输出(和命令):
C:\tmp\unittest\UnitTest\UnitTest\bin\Debug>mstest /testcontainer:UnitTest.dll
Microsoft (R) Test Execution Command Line Tool Version 14.0.23107.0
Copyright (c) Microsoft Corporation. All rights reserved.
Loading UnitTest.dll...
Starting execution...
Results Top Level Tests
------- ---------------
Passed UnitTest.UnitTest1.TestMethod1
1/1 test(s) Passed
Summary
-------
Test Run Completed.
Passed 1
---------
Total 1
Results file: C:\tmp\unittest\UnitTest\UnitTest\bin\Debug\TestResults\jocke_DESKTOP-S6MP97G 2016-07-12 21_16_40.trx
Test Settings: Default Test Settings
C:\tmp\unittest\UnitTest\UnitTest\bin\Debug>