指定旧版测试设置时,在Visual Studio 2017中未发现并执行单元测试

Luk*_*Fan 10 unit-testing visual-studio-2017

我正在使用Visual Studio 2017 Professional 15.4.5,我发现.testsettings通过在Test > Test Settings > Select Test Settings菜单中选择遗留加载旧版时将不会发现单元测试

以下是重现它的步骤:

  1. 创建新的解决方案
  2. 使用以下简单类创建Class Library具有目标框架的项目.NET Framework 4.5.2:

    public class Class1
    {
        public bool True => true;
    }
    
    Run Code Online (Sandbox Code Playgroud)
  3. 创建一个Unit Test Project(.Net Framework)带有目标框架.NET Framework 4.5.2和设置项目参考并编写一个简单的测试:

    [TestClass]
    public class UnitTest1
    {
        [TestMethod]
        public void TestMethod1()
        {
            Assert.IsTrue(new Class1().True);
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)
  4. 运行测试,应该发现并运行测试

  5. 使用解决方案上下文菜单进行选择Add > New Item,Test Settings在左侧窗格中选择Test Settings并在中间选择以创建新的测试设置.
  6. 只需关闭对话框即可跳过设置.单击菜单设置测试设置Test > Test Settings > Select Test Settings
  7. 再次运行测试,它没有被执行,并且可以在"输出"窗格中看到一些信息:

[2017/12/08 13:36:20信息] ------运行测试开始------

[2017/12/08 13:36:22警告]警告:MSTest V2适配器不支持testsettings文件或ForcedLegacyMode设置为true的runsettings.

[2017/12/08 13:36:22错误]测试适配器发回一个未知测试用例的结果.忽略'TestMethod1'的结果.

[2017/12/08 13:36:22信息] ==========运行测试完成:0运行(0:00:01.9851985)==========

更新

为了回答@aruna,我再次按照自己的指示使用VS2017 Professional 15.5.7

测试仍然无法运行但输出不同:

[2018/03/01 13:39:13信息] ------加载播放列表开始------

[2018/03/01 13:39:13信息] ==========加载播放列表完成(0:00:00.001)==========

[2018/03/01 13:40:46信息] ------发现测试开始------

[2018/03/01 13:40:48信息] ==========发现测试结束:1找到(0:00:02.1855628)==========

[2018/03/01 13:40:48信息] ------运行测试开始------

[2018/03/01 13:40:49信息] ==========运行测试完成:1次运行(0:00:01.5406918)==========

[2018/03/01 13:41:32信息] ------运行测试开始------

[2018/03/01 13:41:34警告]警告:MSTest V2适配器不支持testsettings文件或ForcedLegacyMode设置为true的runsettings.

[2018/03/01 13:41:34警告] D:\ git\demo\unit-test-legacy-settings\UnitTestProject1\bin\Debug\UnitTestProject1.dll中没有可用的测试.确保已注册测试发现者和执行者,并且平台和框架版本设置是适当的,然后重试.

[2018/03/01 13:41:34信息] ==========运行测试完成:0运行(0:00:02.0727927)==========