<p>是的。您不必手动组装任何测试夹具或类似的东西。一切都像在项目目录中调用<code>pytest</code>一样运行。在</p>
<h2>方法1:</h2>
<p>这是最好的方法,因为它允许您在测试失败时访问调试器</p>
<p>在<code>ipython</code>shell中使用:</p>
<p><code>
**ipython**> run -m pytest prj/
</code></p>
<p>这将运行<code>prj/tests</code>目录中的所有测试。在</p>
<p>这将允许您访问调试器,或者允许您设置<code>breakpoints</code>,如果您有
<code>import ipdb; ipdb.set_trace()</code>在您的程序(<a href="https://docs.pytest.org/en/latest/usage.html#setting-breakpoints" rel="nofollow noreferrer">https://docs.pytest.org/en/latest/usage.html#setting-breakpoints</a>)中。在</p>
<h2>方法2:</h2>
<p>在测试目录中使用<code>!pytest</code>。这不会给你访问调试器的权限。但是,如果使用</p>
<p><code>
**ipython**> !pytest --pdb
</code></p>
<p>如果测试失败,它会将您放入调试器(subshell),这样您就可以运行事后分析(<a href="https://docs.pytest.org/en/latest/usage.html#dropping-to-pdb-python-debugger-on-failures" rel="nofollow noreferrer">https://docs.pytest.org/en/latest/usage.html#dropping-to-pdb-python-debugger-on-failures</a>)</p>
<hr/>
<p>使用这些方法,您甚至可以使用(<a href="https://docs.pytest.org/en/latest/usage.html#specifying-tests-selecting-tests" rel="nofollow noreferrer">https://docs.pytest.org/en/latest/usage.html#specifying-tests-selecting-tests</a>)在<code>ipython</code>中运行单独的模块/测试功能/测试类</p>
<p><code>
**ipython**> run -m pytest prj/tests/test_module1.py::TestClass1::test_function1
</code></p>