因工作需要以nosetests跑測試, 但現在遇到一個問題
就是當我以subprocess的方式呼叫nosetests來跑testcase時
testcase中print出來的東西無法"被看見"
下面run.py和test.py是簡化後的範例:
首先執行run.py, 這時會要求輸入一個值並存放在檔案runtemp裡
接著以subprocess.call呼叫nosetests去跑test.py這個testcase
最後test.py會去取得runtemp裡面的值並print出來
這樣的作法在執行上是可行, 但問題出在test.py裡的print無法被看到
我試過即便以subprocess.check_output的方式去取得回傳值也沒用
推測的原因可能是nosetests執行test.py時
因為又起了另一個process在執行而不是在subprocess裡所以才看不到
不曉得有沒有什麼辦法可以讓test.py的print"被看見"
懇請大家幫忙了, 謝謝~
run.py
有什麼錯誤呢還是訊息嗎nosetests 這是什麼不清楚,先改 python 就好...call('python test.py', shell=True)若你要跑所謂 unit test 這是這類要用 nosetests就不應該預期會可以直接看到所謂程式的訊息輸出因為跑這類測試 stdout 是給 nosetests 輸出顯示用的真的要看到原本程式的 stdout 輸出也可以,就加上--nocapture 參數就好,只是你要想清楚你這樣用目的另外你程式碼看不到所謂的 unit test 程式碼片段所以用這樣的命令跑程式碼的目的也完全看不出重點