0
我正在嘗試使用casperjs在我的web應用上運行一些集成測試。要做到這一點,我有以下測試類:試圖用Python調用shell命令,什麼也得不到
from django.conf import settings
import unittest
import subprocess
class MyTest(unittest.TestCase):
def test_something(self):
print "begin"
command = "../../n1k0-casperjs-76fc831/bin/casperjs test.js"
p = subprocess.Popen(command, shell=True, bufsize=0, stdout=subprocess.PIPE, universal_newlines=True)
p.wait()
output = p.stdout.read()
p.stdout.close()
print output
print "end"
當我執行這個代碼在Django,或classif Python Shell中,我得到了js
腳本的輸出。但是,當它與Django的調用,我得到這個:
begin
end
你會知道爲什麼會發生這種情況?
順便說一句,不叫p.wait()當你重定向到一個管道。如果管道充滿,這可能會掛起。讀完管道,然後等待。 – tdelaney