2017-01-21 68 views
0

代碼的某些部分適用於Windows,某些部分適用於其他平臺。我想通過適當地放置#pragma: no cover來增加代碼的覆蓋範圍。因此,當程序在Windows平臺上運行時,應該忽略與其他平臺相關的代碼,反之亦然。我怎樣才能做到這一點?改進與平臺有關的python代碼的覆蓋範圍

+0

可能的重複[可以python覆蓋模塊有條件地忽略單元測試中的行?](http://stackoverflow.com/questions/35513257/can-python-coverage-module-conditionally-ignore-lines-in-a -unit-test) – oblalex

回答

0

創建.coveragerc和定義跳過報告生成過程中線路規則:

[report] 
exclude_lines = 
    pragma: no cover 
+0

但是,如果平臺是windows,我該如何指定忽略特定行,否則忽略其他行? –

+0

您可以爲不同的平臺創建單獨的配置文件。例如。; 'pragma:no cover linux''''pragma:no cover win32'等 然後將這些配置手動傳遞給覆蓋範圍,或者根據目標平臺自動選擇它們。在'setup.py'裏面或者在你的測試套裝裏面(你可能需要創建)。 – oblalex

1

一個更好的解決方案是不能忽視的線條可言,而是衡量在所有平臺上的覆蓋面,然後將它們結合起來一起。

您可以在「並行模式」下運行coverage,以便每個數據文件都有一個不同的名稱,其中parallel = true。然後將所有數據文件複製到一個地方,運行「覆蓋率合併」,然後「覆蓋率報告」。

+0

乾淨利落,+1 – oblalex