2016-02-12 29 views
8

我知道py.test可以測試一個模塊,如果我做的:調用pytest只有

py.test mod1.py 

或者,我可以調用內部蟒蛇pytest:

import pytest 
pytest.run(['mod1.py']) 

燦我在python裏面做,並讓它運行當前模塊?我想我可以這樣做:

import pytest 
import os 
pytest.main([os.path.basename(__file__)]) 

但不知道這是否是最「pythonic」的方式來做到這一點。謝謝!

+0

你顯示的例子是針對一個文件,但是你問的問題是關於模塊。請清楚你想要什麼 –

回答

7

您的版本不允許向pytest傳遞額外的參數(例如允許./test_file.py -v)。我想簡單地

import sys 


if __name__ == '__main__': 
    pytest.main(sys.argv) 

,似乎這樣的伎倆。 sys.argv[0]是腳本名稱(即__file__,可能是一個相對路徑),所以它限制對腳本的調用,並且sys.argv[1:]包含在命令行上傳遞的額外參數。

任何更好的想法讚賞!