我正在尝试使用casperjs在我的网络应用上运行一些集成测试。为此,我有以下测试类:
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
你们知道为什么会这样吗?
答案 0 :(得分:1)
你的shell命令是否可能实际输出到stderr?
要将stderr重定向到stdout,请尝试此命令来调用命令:
p = subprocess.Popen(command, shell=True, bufsize=0, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, universal_newlines=True)