运行鼻子测试会损坏腻子会话

时间:2019-02-25 09:12:25

标签: python putty tmux nose

当我在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

编辑:

我把范围缩小了一点。

  • 它发生在tmux之外(在腻子会话中)
  • 之所以会这样,是因为我从python测试中启动了其他进程

这是一个例子:

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()

编辑2:

似乎将子流程重定向到/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()

它可以解决问题,我想了解为什么会这样...

0 个答案:

没有答案