замерзание носа в raw_input - PullRequest
       56

замерзание носа в raw_input

3 голосов
/ 14 февраля 2012

У меня есть тест на нос, который импортирует файл, который запускает класс с raw_inputs.Всякий раз, когда я печатаю тесты носа в командной строке, приглашение просто приостанавливается и не продолжается - мне нужно прерывать с клавиатуры, чтобы посмотреть, что произойдет, и оказывается, что тест носа запускает мой файл до первого raw_input (один из многих), в этот момент он просто останавливается и не может продолжать.

Любой способ обойти это?Спасибо!

1 Ответ

4 голосов
/ 15 февраля 2012

Если возможно, перепишите файл, чтобы он не вызывал raw_input () при импорте.

# imported file
if __name__ == "__main__":
    raw_input()

В противном случае, если вы можете заранее выяснить, что было бы приемлемым вводом, вы можете взять стандартный вводиз файла.Предполагая, что input.txt содержит «Pass»:

nosetests test_input.py < input.txt

, где test_input.py равен:

# test file
def test_input():
    s = raw_input()
    assert s.strip() == "Pass"

Или вы можете передать приемлемый ввод в тесты на нос:

c:\>echo Pass | nosetests test_input.py
.
----------------------------------------------------------------------
Ran 1 test in 0.001s
OK

c:\>echo Fail | nosetests test_input.py
F
======================================================================
FAIL: cgp.test.test_input.test_input
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\Python27\lib\site-packages\nose\case.py", line 187, in runTest
    self.test(*self.arg)
  File "c:\test_input.py", line 3, in test_input
    assert s.strip() == "Pass"
AssertionError
----------------------------------------------------------------------
Ran 1 test in 0.002s
FAILED (failures=1)
...