使MSTest无法构建和部署,并在同一文件夹上运行

时间:2016-07-12 16:07:52

标签: testing deployment mstest

我必须使用MSTest运行我们的测试,我的问题是MSTest在许多子文件夹中创建和操作(TestResults是根文件夹),我们的测试引用了项目其他部分的一些脚本,因此如果从与解决方案不同的路径执行,它们就会失败。

有什么方法可以强迫MSTest不构建和部署解决方案,但只是在我启动它的同一个文件夹上运行测试(即bin / Debug)?我一直在努力使用.testsettings文件,但不会太过分。

1 个答案:

答案 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>