没有从MSTest执行的测试

时间:2018-02-01 14:13:10

标签: c# visual-studio unit-testing

我已阅读No tests to execute msTest

我试图从命令行运行单元测试(MS单元测试)。这是我第一次尝试这个。

我的命令工作正常(没有语法错误),这是

  

mstest /testcontainer:C:\Users\me\source\repos\Test03\UnitTestProject1\bin\debug\UnitTestProject1.dll

问题是我总是在控制台中得到以下响应

  

正在加载C:\ Users \ me \ source \ repos \ Test03 \ UnitTestProject1 \ bin \ debug \ UnitTestProject1.dll ...
  开始执行......
  没有要执行的测试。

我的单元测试只是

namespace UnitTestProject1
{
    [TestClass]
    public class UnitTest1
    {
        [TestMethod]
        public void AddPositive()
        {
            var bll = new ConsoleApp1.Bll();
            var result = bll.Add(2, 5);
            Assert.IsTrue(result == 7);
        }
     }

为什么我没有按照https://msdn.microsoft.com/en-us/library/ms182489.aspx#testcontainer的说明进行测试?

整个解决方案的目标是4.6.1,我使用VS 2017 Enterprise

2 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,花了一些时间才知道实际的解决方案在评论中。

我的测验被vstest.console.exe所打败:

Visual Studio Enterprise 2017

  

“ C:\ Program Files(x86)\ Microsoft Visual   Studio \ 2017 \ Enterprise \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TestWindow \ vstest.console.exe“

有关更多信息,请参见https://docs.microsoft.com/en-us/visualstudio/test/vstest-console-options

答案 1 :(得分:0)

如果要使用class Request(db.Model): id = db.Column(db.Integer, primary_key = True) r_time = db.Column(db.DateTime, index = True, default=datetime.utcnow) org = db.Column(db.String(120)) dest = db.Column(db.String(120)) buyer_id = db.Column(db.Integer, db.ForeignKey('buyer.id')) sale_id = db.Column(db.Integer, db.ForeignKey('sale.id')) cost = db.Column(db.Integer) sr = db.Column(db.Integer) profit = db.Column(db.Integer) def __repr__(self): return '<Request {} by {}>'.format(self.org, self.buyer_id) class Buyer(db.Model): id = db.Column(db.Integer, primary_key = True) name = db.Column(db.String(120), unique = True) email = db.Column(db.String(120), unique = True) requests = db.relationship('Request', backref = 'buyer', lazy='dynamic') def __repr__(self): return '<Buyer {}>'.format(self.name) ,则需要在项目文件中提供以下参考:

mstest.exe

如果有的话(这似乎是新创建的测试项目的默认设置):

<Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />

您需要使用<Reference Include="Microsoft.VisualStudio.TestPlatform.TestFramework, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> <HintPath>..\..\packages\MSTest.TestFramework.1.3.2\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.dll</HintPath> </Reference> <Reference Include="Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> <HintPath>..\..\packages\MSTest.TestFramework.1.3.2\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll</HintPath> </Reference>

请注意,VSTest.Console.exe is optimized for performance and is used in place of MSTest.exe in Visual Studio 2012