2017-10-20 190 views
1

我已經將Visual Studio Test任務添加到了我的構建定義並啓用了代碼覆蓋。它可以工作,但是在計算塊時還會包含依賴項,這會導致結果無用。我使用Visual Studio的測試運行的xUnit.net如何從代碼覆蓋率中排除依賴關係?

例如,在Visual Studio分析代碼覆蓋率的時候,我有以下結果:覆蓋不包括13塊,38塊:

  • 彙總
  • foo.dll:未覆蓋的13塊,20塊覆蓋
  • foo.test.dll:未包括0的塊,18個塊覆蓋

當從VSTS下載代碼覆蓋率報告,我有以下結果:

  • 總結:不包括6769塊,205塊覆蓋
  • fluentassertions.core.dll:不包括5639塊,155塊覆蓋
  • fluentassertions.dll:不包括1117塊,12個塊覆蓋
  • foo.dll:未覆蓋的13塊,20塊覆蓋
  • foo.test.dll:未包括0的塊,18個塊覆蓋

這顯示在VSTS:

screenshot of code coverage report

FluentAssertions只引用,並在我的測試項目中使用。我如何從代碼覆蓋率中排除它(以及其他未來的依賴關係)?

+0

您是否檢查過文檔? https://msdn.microsoft.com/en-us/library/jj159530.aspx和https://stackoverflow.com/questions/36853340/excluding-assemblies-from-code-coverage-in-visual-studio-team-服務 – Jacob

+0

@Jacob這是一個選項,但我寧願在VSTS中設置一個「set and forget」方法,而不是創建需要維護的'.runsettings'文件。 (也許我應該只是創建一個錯誤報告,因爲我懷疑它是如何運作的。) – Stijn

回答

1

這是預期的結果,如果通過運行測試VSTest.Console.exe,則可以通過在本地計算機上手動運行該測試VSTest.Console.exe和檢查結果。

Visual Studio的測試任務調用VSTest.Console.exe運行測試,所以它收集額外的組件的代碼覆蓋。除了指定runsetting文件外,沒有其他配置選項。

相關問題