2017-06-12 27 views
0

我試圖使用pytest運行分裂測試用例。我有一個應用程序和一個框架,他們都定義了測試用例。當我開始運行測試時,我的應用程序還使用「main」函數(來自_pytest.config import main main([<framework_dir>, args, ...]))運行框架的測試用例。Pytest:在框架測試中使用App conftest.py

問題是我想使用應用程序conftest.py而不是框架的conftest.py。我試圖通過使用--confcutdir =選項(main([<framework_dir>, '--confcutdir={}'.format(os.path.dirname(__file__)), ...]))來實現,但它不起作用。當我列出燈具(使用--fixtures選項)時,它們未列出(在應用程序的conftest.py中定義的燈具)。

那麼有沒有人有任何經驗如何共享應用程序和框架/庫之間的裝置?

我創建了一個GitHub庫,模擬我的項目,並再現錯誤:https://github.com/karantan/global-fixtures

回答

0

我得到了很多的幫助,在這個由用戶「enkidulan」 websauna IRC聊天。他指出,我不應該通過main函數調用框架測試。

我的問題的根源是strategy of pytests discovery of fixtures functions似乎是最接近測試文件conftest.py總是在改寫比賽獲勝,甚至在情況下,如果-p指定一些固定裝置裝載(不知道是否是在pytests一個bug)。

所以他建議我應該將conftest.py重命名爲不同的東西,比如fixtures.py(我做過)。然後,而不是僅僅發現在App測試(pytest src/app/tests/)我也發現框架測試+添加到使用的燈具:pytest -p app.tests.fixtures src/app/tests/

注意:如果有人想檢查代碼看起來回購與最後一個工作版本更新。