4

那里的所有 pytest 文档都指定这py.test file_name是运行 pytest 测试用例的标准方式。但是我在 Emacs 中使用左侧窗格中的 Python 脚本和右侧窗格中的 Python 解释器进行开发。

我的工作流程是我对 Python 脚本进行更改CTRL-C C(以便将更新的更改发送到 REPL)并移动到 REPL ( CTRL-O) 以便测试更新的代码。如果我可以对左侧的测试用例进行更改,移动到右侧的 REPL 屏幕并执行更新的测试用例,那就太好了。

有没有办法从 REPL 或脚本中运行 pytest 测试用例,而不是生成 shell 并运行 pytest 命令?

编辑:顺便说一句,我确实尝试过使用mainpytest 中的函数并在脚本中调用它,但出于一些有趣的原因,除非我杀死旧的 REPL 并开始一个新的,否则这些更改不会被采纳。其他 Python 脚本不会发生这种情况,所以我确信这与 pytest 有关。这是代码:

def test_add():
  assert myadd(1, 2) == 3

if __name__ == '__main__':
  pytest.main()
4

1 回答 1

0

以下@Conrad.Dean 的评论。似乎将测试放入一些 pytest.py 是一种有用的约定。下面的例子说明了 的作用if __name__ == '__main__'

def myadd(first, second):
    return first + second

def test_add():
  assert myadd(1, 2) == 3

if __name__ == '__main__':
  print("Running test_add")
  test_add()
于 2013-07-14T20:01:41.407 回答