Tag: 代码覆盖率

Visual Studio 2013代码覆盖率 – 未检测二进制文件

我正在尝试使用我编写的测试在我的代码块上运行代码覆盖。 在它工作正常但现在我得到错误: 生成空结果:没有检测到二进制文件。 确保测试已运行,所需的二进制文件已加载,具有匹配的符号文件,并且未通过自定义设置排除。 有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkID=253731 我似乎无法弄清楚如何解决这个问题。 环顾四周,我看到很多人都试图去他们的项目根目录并删除那里的.suo(解决方案用户选项)文件,但这并没有解决我的问题。 我正在使用VS 2013 Ultimate

当所需代码几乎没有逻辑时,是否仍然使用TDD编写测试? 为什么?

TDD应该具有100%的代码覆盖率。 这是否意味着应该为属性getter和setter编写测试,以及其他不包含实际逻辑的方法,例如处理外部APIfunction? 例1: 下面是一个示例方法(这也恰好是另一个SO问题的例子,它解决了如何最好地测试它,如果我们要测试它)。 这种方法做得不多。 它是停止服务的System.ServiceProcess.ServiceControllerfunction的外观。 目前这个代码不是使用TDD编写的,但如果是,那么它应该是一个应该测试的东西吗? 这里的逻辑非常少。 测试本身并没有那么有用。 仅供参考:如果您想回答如何最好地测试它(IoC&Adapter Pattern vs. Detouring),请参阅其他问题 。 Public Function StopService(ByVal serviceName As String, ByVal timeoutMilliseconds As Double) As Boolean Implements IWindowsServicesService.StopService Try Dim service As New ServiceController(serviceName) Dim timeout As TimeSpan = TimeSpan.FromMilliseconds(timeoutMilliseconds) service.[Stop]() If timeoutMilliseconds <= 0 Then service.WaitForStatus(ServiceControllerStatus.Stopped) Else service.WaitForStatus(ServiceControllerStatus.Stopped, timeout) End If Return service.Status = […]

MSTest显示复合布尔表达式的部分代码覆盖率

从微软的文档中,部分覆盖的代码是“……其中一些代码块未被执行。” 我对这个很难过(简化为简洁): 鉴于此方法: public List CodeUnderTest() { var collection = new List { “test1”, “test2”, “test3” }; return collection.Where(x => x.StartsWith(“t”) && x == “test2”).ToList(); } 而这个测试: [TestMethod] public void Test() { var result = new Class1().CodeUnderTest(); CollectionAssert.Contains(result, “test2”); } 代码覆盖率结果显示表达式x.StartsWith(“t”) && x == “test2仅被部分覆盖。我不确定这是怎么可能的,除非编译器或CLR有一些急切的条件匹配的东西,但也许我只需要解释一下。

如何测试永远不会执行的代码?

如果已经validation存在无效数字(通过调用另一种方法),则仅调用以下方法。 如何在以下代码段中测试覆盖throw -line? 我知道有一种方法可以将VerifyThereAreInvalidiDigits和此方法合并在一起。 我正在寻找任何其他想法。 public int FirstInvalidDigitPosition { get { for (int index = 0; index < this.positions.Count; ++index) { if (!this.positions[index].Valid) return index; } throw new InvalidOperationException("Attempt to get invalid digit position whene there are no invalid digits."); } } 我也不想写一个unit testing来运行永远不会被执行的代码。

如何在unit testing中使用模拟对象并仍使用代码覆盖率?

现在我开始将Mock对象的概念引入我的unit testing中。 特别是我正在使用Moq框架。 但是,我注意到的一件事是突然我使用这个框架测试的类显示代码覆盖率为0%。 现在我明白了,因为我只是在嘲笑这个类,它没有运行实际的类本身….但是我如何编写这些测试并让Code Coverage返回准确的结果? 我是否必须编写一组使用Mocks的测试和一组直接实例化该类的测试。 也许我在没有意识到的情况下做错了什么? 这是我尝试unit testing一个名为“MyClass”的类的示例: using Moq; using NUnitFramework; namespace MyNameSpace { [TestFixture] public class MyClassTests { [Test] public void TestGetSomeString() { const string EXPECTED_STRING = “Some String!”; Mock myMock = new Mock(); myMock.Expect(m => m.GetSomeString()).Returns(EXPECTED_STRING); string someString = myMock.Object.GetSomeString(); Assert.AreEqual(EXPECTED_STRING, someString); myMock.VerifyAll(); } } public class MyClass { public […]

在Visual Studio之外查看代码覆盖率结果

我有一些unit testing,并获得了一些代码覆盖率数据。 现在,我希望能够在Visual Studio之外查看代码覆盖率数据,比如在Web浏览器中。 但是,当我将代码覆盖率导出到xml文件时,我无法对其进行任何操作。 那里有读者吗? 我是否必须编写一个xml解析器,然后按照我想要的方式显示它(看起来像是浪费,因为visual studio已经这样​​做了。)看起来有点傻到必须把我的代码覆盖率结果截图作为我的“报告”建议?

C#代码覆盖率指标

是否有免费的商用代码覆盖率工具(低至无效的LOC级别)? 我知道VS2008团队版,但不幸的是没有预算来购买许可证! 所以我正在寻找免费(如啤酒)替代品。 有任何想法吗?

从Visual Studio 2015中的代码覆盖率中排除自动属性

我刚刚将一堆项目升级到VS2015 / C#6。 现在,MSTest的代码覆盖率分析报告unit testing未涵盖某些自动属性。 在Visual Studio 2013中并非如此,我怀疑它可能与C#6中的新autopropertyfunction有关。 处理所产生的所有误报都会使代码覆盖率工具的目的失败,因为它几乎不可能识别缺乏测试覆盖率的实际代码。 我们不想为所有DTO编写unit testing,而且我真的不需要通过ExcludeFromCodeCoverage为项目注释每个单独的自动属性。 我在https://github.com/iaingalloway/VisualStudioCodeCoverageIssue创建了一个有效的MCVE 在Visual Studio 2013 Premium或Ultimate中打开VisualStudio2013.sln 。 单击测试 – >分析代码覆盖 – >所有测试。 观察“代码覆盖率结果”窗口报告0块“未涵盖”。 在Visual Studio 2015 Enterprise中打开VisualStudio2015.sln 。 单击测试 – >分析代码覆盖 – >所有测试。 观察“代码覆盖率结果”窗口报告1块“未覆盖”(ExampleDto.Value的getter) 是否可以在Visual Studio 2015中配置内置代码覆盖率工具以忽略Visual Studio 2013之类的自动属性?

如何将类修饰为代码覆盖率不可测试?

背景:Visual Studio 2008,C#,。Net 3.5。 我有许多实用程序类,它们不是单元可测试的。 这主要是因为它们与资源(例如数据库,文件等)交互。 有没有办法可以装饰这些类,以便Visual Studio代码覆盖引擎会忽略它们,所以不降低代码覆盖百分比?

MSTest代码覆盖范围

如果我正在使用MSTest,有没有办法测试visual studio中的代码覆盖率? 或者我必须购买NCover? 如果微软不提供内置工具来进行代码覆盖,那么NCover Enterprise是否物有所值,或者旧的测试版是否足够好? 编辑:VS产品的描述以及哪些包括代码覆盖率https://www.visualstudio.com/vs/compare/ 如果您的VS版本不支持,可以使用TestDriven.NET( http://testdriven.net/ )。