在dotCover覆盖率分析期间如何忽略单元测试?

问题描述 投票:0回答:1

请考虑以下repro示例(MS测试单元测试代码):

using System.Diagnostics.CodeAnalysis;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace UnitTestProject1
{
    [TestClass]
    public class UnitTest1
    {
        [TestMethod]
        public void TestMethod1()
        {
            SharedMethod();
        }

        [TestMethod, ExcludeFromCodeCoverage]
        public void TestMethod2()
        {
            SharedMethod();
            // This is a performance test which will fail during coverage analysis.
            Assert.Fail();
        }

        private void SharedMethod()
        {
            // Should be green
            if (true) ; // NOOP
        }
    }
}

TestMethod2是一种性能测试方法,它将在“常规”单元测试期间成功,但在代码覆盖率分析期间将失败(由于额外的开销)。没关系。我只希望在代码覆盖率分析期间忽略该方法,以使我的SharedMethod显示为“绿色”(因为它已成功被TestMethod1覆盖。)>

[According to JetBrains,coverage过滤器应该这样做,是的,ExcludeFromCodeCoverageAttribute有一个激活的过滤器:

screenshot of coverage filters

但是,运行扩展程序/ ReSharper /单元测试/“从解决方案覆盖所有测试”在为代码着色时仍会考虑我排除的测试:

screenshot of coverage test result

我做错了什么?以及如何(轻松)从代码覆盖率分析中排除性能测试?

请考虑以下repro示例(MS测试单元测试代码):使用System.Diagnostics.CodeAnalysis;使用Microsoft.VisualStudio.TestTools.UnitTesting;命名空间UnitTestProject1 {[TestClass] ...

c# unit-testing resharper code-coverage dotcover
1个回答
0
投票

(这是基于我发现的解决方法的自我解答。如果您找到了此问题的实际解决方案,请随意添加您自己的答案。)

© www.soinside.com 2019 - 2024. All rights reserved.