针对 net452 的代码覆盖率 .net 核心 Web 应用程序

Code coverage .net core web application targeting net452

如何在 VS2017(或 VS2015)中获取针对 net452 的 .net 核心 Web 应用程序的代码覆盖率?

我使用 xUnit 设置了测试,但没有获得 .net 核心 Web 应用程序的覆盖率结果。测试 运行 很好,但我没有得到任何报道!

这是一个已知问题吗?

它也不适用于 MS 的测试库。

快速重现:

  1. 加载VS2017
  2. 创建新的 ASP.NET 核心 Web 应用程序 (.NET 框架)称为 WebApplication1
  3. 如下创建TestClass.cs
  4. 创建名为 UnitTestProject1
  5. 的新单元测试项目 (.NET Framework)
  6. UnitTestProject1
  7. 中添加对 WebApplication1 的引用
  8. 编辑UnitTest1.cs如下
  9. 运行 Test -> Analyze Code Coverage -> All Tests
  10. 打开Test -> Windows -> Code Coverage Results
  11. 代码覆盖率只显示unittestproject1.dll

TestClass.cs

namespace WebApplication1
{
    public class TestClass
    {
        public bool TestMethod(bool test)
        {
            if (test) { return true; }
            return false;
        }
    }
}

UnitTest1.cs

using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace UnitTestProject3
{
    [TestClass]
    public class UnitTest1
    {
        [TestMethod]
        public void TestMethod1()
        {
            var testClass = new WebApplication1.TestClass();
            var val = testClass.TestMethod(true);
            Assert.IsTrue(val);
        }
    }
}

Code coverage is not implemented for netcore projects yet. This support requires datacollectors infrastructure (https://github.com/Microsoft/vstest/issues/309) . It will come post RTW. We recommend that you follow the above issue for updates and fix notifications.

https://developercommunity.visualstudio.com/content/problem/5813/cannot-get-test-coverage-for-net-core-projects.html