0
我尝试测试服务器,并希望将其打印输出在这里的测试不能打印与子进程运行Python脚本的输出
class TestHandler(TestCase):
def setUp(self):
cmd = [
'python', '-m', 'server',
'-f', write_to_path,
'--debug'
]
self.server = Popen(cmd, universal_newlines=True, cwd=root_dir_path,
stdout=PIPE, stderr=PIPE)
# also tried this, did not help
# cmd = [
# 'python -m server --debug -f ' + write_to_path
# ]
# self.server = Popen(cmd, shell=True, universal_newlines=True, cwd=root_dir_path,
# stdout=PIPE, stderr=PIPE)
def tearDown(self):
try:
outs, errs = self.server.communicate(timeout=2)
print(outs, errs)
except TimeoutExpired:
print("kill")
self.server.kill()
outs, errs = self.server.communicate()
print(outs, errs) # empty output here
def testWordWithoutParent(self):
pass
末当我运行它,stdout和犯错是空的,但服务器代码被执行(与PDB我测试了它的主要功能在服务器/ __ main__.py)
~/Documents/LINGUALEO/lingualeo2anki $ python -m unittest
.kill
.
----------------------------------------------------------------------
Ran 2 tests in 2.006s
OK
我试过stackowerflow将近3小时,没有他很多答案我放弃了。