2014-11-09 3 views
2

Я установил python 3.4.2, а затем запустил pip install -U pytest для установки pytest.Запуск pytest через IDLE gui

У меня есть следующий пример сценария:

# content of test_sample.py 
import pytest 

def func(x): 
    return x + 1 

def test_answer(): 
    assert func(3) == 4 

Когда я нажимаю F5 в IDLE не кажется запустить что-нибудь. Как я могу проверить свой скрипт через IDLE?

UPDATE
Я пытался добавить pytest.main(), но я получил сообщение об ошибке.

File "C:\Python34\lib\site-packages\_pytest\config.py", line 32, in main 
    config = _prepareconfig(args, plugins) 
    File "C:\Python34\lib\site-packages\_pytest\config.py", line 85, in _prepareconfig 
    pluginmanager=pluginmanager, args=args) 
    File "C:\Python34\lib\site-packages\_pytest\core.py", line 413, in __call__ 
    return self._docall(methods, kwargs) 
    File "C:\Python34\lib\site-packages\_pytest\core.py", line 424, in _docall 
    res = mc.execute() 
    File "C:\Python34\lib\site-packages\_pytest\core.py", line 315, in execute 
    res = method(**kwargs) 
    File "C:\Python34\lib\site-packages\_pytest\helpconfig.py", line 27, in pytest_cmdline_parse 
    config = __multicall__.execute() 
    File "C:\Python34\lib\site-packages\_pytest\core.py", line 315, in execute 
    res = method(**kwargs) 
    File "C:\Python34\lib\site-packages\_pytest\config.py", line 636, in pytest_cmdline_parse 
    self.parse(args) 
    File "C:\Python34\lib\site-packages\_pytest\config.py", line 747, in parse 
    self._preparse(args) 
    File "C:\Python34\lib\site-packages\_pytest\config.py", line 719, in _preparse 
    args=args, parser=self._parser) 
    File "C:\Python34\lib\site-packages\_pytest\core.py", line 413, in __call__ 
    return self._docall(methods, kwargs) 
    File "C:\Python34\lib\site-packages\_pytest\core.py", line 424, in _docall 
    res = mc.execute() 
    File "C:\Python34\lib\site-packages\_pytest\core.py", line 315, in execute 
    res = method(**kwargs) 
    File "C:\Python34\lib\site-packages\_pytest\capture.py", line 49, in pytest_load_initial_conftests 
    capman.init_capturings() 
    File "C:\Python34\lib\site-packages\_pytest\capture.py", line 78, in init_capturings 
    self._capturing.start_capturing() 
    File "C:\Python34\lib\site-packages\_pytest\capture.py", line 257, in start_capturing 
    self.in_.start() 
    File "C:\Python34\lib\site-packages\_pytest\capture.py", line 345, in start 
    raise ValueError("saved filedescriptor not valid anymore") 
ValueError: saved filedescriptor not valid anymore 
+0

Run test_sample.py в консоли, чтобы определить, есть ли Idle ничего, чтобы с отказом или нет. Ваше название подразумевает, что вы думаете «да». Я подозреваю «нет», но хотел бы знать. –

+0

Я могу воспроизвести эту проблему только в IDLE. Запуск через командную строку отсутствует. – Isaac

ответ

2

Попробуйте добавить pytest.main() в конец скрипта.

Отъезд: http://pytest.org/latest/usage.html#specifying-tests-selecting-tests для некоторых различных вариантов и синтаксиса.

Edit: При работе в режиме ожидания, вы должны будете начать pytest так: pytest.main("--capture=sys")

+0

Кажется, что я получаю какую-то ошибку. Я обновил свой ответ с помощью stacktrace. – Marnix

+0

@Marnix Я обновил свой ответ, чтобы не допустить эту ошибку при работе в IDLE – Isaac

+0

Спасибо, у меня еще не было времени попробовать. – Marnix