我想從 python 函式呼叫 pytest。我能夠讓它與os.system. 我想使用子行程來檢索 pytest 輸出。
cmd = ["pytest", "-s", debug, "DeviceTests/{0}".format(test_name), "--device_id {0}".format(device_address), "--firmware_version {0}".format(firmware_version)]
print(cmd)
process = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = process.communicate()
print(out)
子行程確實運行,但告訴我有一個錯誤。我的 pytest 需要兩個 CLI 選項。運行子行程我被告知兩個 CLI 選項不存在。
這是我的 cmd 和錯誤。
Running Test DisioOnBACnetTest
['pytest', '-s', '--disable-pytest-warnings', 'DeviceTests/DisioOnBACnetTest', '--device_id 9101', '--firmware_version 0.1.1']
b''
b'ERROR: usage: pytest [options] [file_or_dir] [file_or_dir] [...]\npytest: error: the following arguments are required: --device_id, --firmware_version\n\n'
如您所見,我正在發送 device_id 和 firmware_version,但是子行程沒有正確地將它們發送到 pytest。
uj5u.com熱心網友回復:
您需要正確分隔引數。
這個:
"--device_id {0}".format(device_address), "--firmware_version {0}".format(firmware_version)
應該
"--device_id", "{0}".format(device_address), "--firmware_version", "{0}".format(firmware_version)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/315081.html
上一篇:Django選擇過濾的相關物件
下一篇:如何在特定行或位置編輯文本檔案
