通过IDLE gui运行pytest

时间:2014-11-09 17:08:39

标签: python python-idle pytest

我已经安装了python 3.4.2,然后运行pip install -U pytest来安装pytest。

我有以下示例脚本:

# content of test_sample.py
import pytest

def func(x):
    return x + 1

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

当我在IDLE中按 F5 时,它似乎没有运行任何东西。如何通过IDLE测试我的脚本?

更新
我尝试添加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

1 个答案:

答案 0 :(得分:2)

尝试将pytest.main()添加到脚本的底部。

查看:http://pytest.org/latest/usage.html#specifying-tests-selecting-tests了解一些不同的选项和语法。

编辑: 在IDLE中运行时,您还需要像这样开始pytest:pytest.main("--capture=sys")