当我在nosetests
会话中运行putty
时,命令提示符将停止工作。例如,我键入的任何键都会变成)
到目前为止,我发现唯一要恢复的方法是重新启动会话。
我运行的命令是:
nosetests -v --with-xunitmp -m "(?:\b|_)[Tt]est" --xunitmp-file nosetests.xml --processes=10 --process-timeout=600
我使用鼻子测试1.3.7
和python 3.5.1
我把范围缩小了一点。
这是一个例子:
from unittest import TestCase
from subprocess import Popen
import time
class MyTest(TestCase):
def test_this(self):
self.assertTrue(True)
def test_with_process(self):
process = Popen(['watch', 'ls'])
time.sleep(1)
if process.poll() is None:
process.kill()
似乎将子流程重定向到/dev/null
可以解决此问题:
from unittest import TestCase
from subprocess import Popen, DEVNULL
import time
class MyTest(TestCase):
def test_this(self):
self.assertTrue(True)
def test_with_process(self):
process = Popen(['watch', 'ls'],
stdout=DEVNULL,
stderr=DEVNULL,
stdin=DEVNULL)
time.sleep(1)
if process.poll() is not None:
print("KILLING")
process.kill()
process.communicate()
它可以解决问题,我想了解为什么会这样...