Когда я запускаю 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()
Это решает проблему, я 'хотелось бы понять, почему это происходит ...