我正在使用pytest來測試嵌入式系統的python模型。要測試的功能因平臺而異。 (我在此上下文中使用「平臺」來表示嵌入式系統類型,而不是操作系統類型)。pytest是否支持「默認」標記?
組織我的測試最直接的方法是將它們分配到基於平臺類型的目錄。
/platform1
/platform2
/etc.
pytest/PLATFORM1
這迅速成爲難以支持儘可能多的功能,跨平臺重疊。之後我將測試移到了一個目錄中,每個功能區域的測試分配給一個文件名(例如test_functionalityA.py)。 然後,我使用pytest標記來指示文件中的哪些測試適用於給定的平臺。
@pytest.mark.all_platforms
def test_some_functionalityA1():
...
@pytest.mark.platform1
@pytest.mark.platform2
def test_some_functionlityA2():
...
雖然我愛得到「conftest」自動檢測平臺類型,僅運行相應的測試,我已經辭職自己指定它測試在命令行上運行。
pytest -m「(PLATFORM1或all_platforms)」
的問題:(!終於)
有沒有辦法把事情簡單化,並有pytest運行在默認情況下通過了所有無人盯防的測試,此外,所有測試通過'-m'在命令行?
例如: pytest -m 「PLATFORM1」
將運行測試標誌着@ pytest.mark.platform1以及所有測試標誌着@ pytest.mark.all_platforms甚至所有的測試,沒有@ pytest.mark在所有?
由於有大量的共享功能,能夠降@ pytest.mark.all_platforms線將是一個很大的幫助。
工作就像一個魅力。謝謝Holger。 –
只是讓其他人知道,這個答案的來源是從https://pytest.org/latest/example/markers.html#marking-platform-specific-tests-with-pytest你可以找到更多的例子。 –