2012-08-01 98 views
1

pytest_addoption我有以下的測試目錄結構,每個人都有自己的conftest.py:py.test在相同的目錄結構不能有相同的選項名稱

tests/api 
    tests/api/newapi 
    tests/sanity 

在conftest.py,pytest_addoption具有相同的選項進入作爲test_option:

parser.addoption( 「 - test_option」,DEST = 「test_option」,類型= 「字符串」,幫助= 「test_option」)

在測試/ API/newapi執行py.test具有以下錯誤:

optparse.OptionConflictError:選項--test_option:衝突的選項字符串(S):--test_option

但執行py.test在測試/ API或測試或測試/神智正常工作。 這是否是由設計,如果父目錄具有相同的選項名稱,我必須拿出一個新的選項名​​稱?

我一直希望能夠保持命名約定相同,因爲相關選項爲測試提供相同的目的。目的是根據測試從哪個目錄啓動而改變測試的詳細程度。

+0

**注意**:從python版本2.7開始,不鼓勵使用* optparse *。 optparse模塊已棄用,不會進一步開發;開發將繼續使用* argparse *模塊。有關更多信息,請參見[PEP 0389](http://www.python.org/dev/peps/pep-0389/)。 – shakaran 2013-04-03 23:56:40

回答

1

我認爲你應該有一個tests/conftest.py,它通過pytest_addoption定義了這個選項,並且你可以從任何地方訪問它,因爲所有的conftest.py文件都被考慮了(所以你可能仍然在tests/newapi/conftest.py並使用選項值)。

+0

非常感謝您的回覆。它工作得很好。我將所有常用選項放在tests/conftest.py pytest_addoption中,並將它們從每個測試的conftest.py中刪除,現在我可以從上面列出的任何目錄運行測試幷包括測試。 – 2012-08-07 23:40:49

相關問題