<p>我创造这个是为了回答你的问题和我自己的困惑。我希望有帮助。注意<code>py.test</code>命令行和<code>tox.ini</code>中的<code>PYTHONPATH</code>。在</p>
<p>示例项目是<a href="https://github.com/jeffmacdonald/pytest_test" rel="nofollow">here</a>,并且如下所示:</p>
<p><code>mymodule.py</code>:</p>
<pre><code>import boto3
def stuff():
print "Yep!"
</code></pre>
<p><code>tests/text_syntax_errors.py</code>:</p>
^{pr2}$
<p><code>tox.ini</code>:</p>
<pre><code>[tox]
skipsdist = True
envlist = py27
[flake8]
max-line-length = 119
[testenv]
deps= -r{toxinidir}/requirements.txt
commands=py.test
setenv =
PYTHONPATH = {toxinidir}
</code></pre>
<p><code>requirements.txt</code>:</p>
<pre><code>boto3
pytest
</code></pre>
<p>来自我的<code>README.md</code>:</p>
<blockquote>
<p>How-to run these examples</p>
<p>My initial motivation for testing my code was that I had misspelled an imported module in a script that I was writing for work.</p>
<p>If you edit <code>mymodule.py</code> and remove the <code>b</code> from "<code>boto3</code>" you will see the commands below fail. And this is a good thing. Likewise if you would like to see an actual test fail, simple edit <code>tests/test_syntax_errors.py</code> and change <code>1 == 1</code> to <code>1 == 0</code>.</p>
</blockquote>
<p><strong>py.测试</strong></p>
<pre><code>mbp0 pytest_test[master+*] $ PYTHONPATH=. py.test
========================== test session starts ==========================
platform darwin Python 2.7.11, pytest-2.9.2, py-1.4.31, pluggy-0.3.1
rootdir: /Users/jmacdonald/w/pytest_test, inifile:
collected 1 items
tests/test_syntax_errors.py .
======================= 1 passed in 0.11 seconds ========================
mbp0 pytest_test[master+*] $
</code></pre>
<p><strong>毒物</strong></p>
<pre><code>mbp0 pytest_test[master+*] $ tox
py27 installed: boto3==1.3.1,botocore==1.4.37,docutils==0.12,futures==3.0.5,jmespath==0.9.0,py==1.4.31,pytest==2.9.2,python-dateutil==2.5.3,six==1.10.0
py27 runtests: PYTHONHASHSEED='713732044'
py27 runtests: commands[0] | py.test
========================== test session starts ==========================
platform darwin Python 2.7.11, pytest-2.9.2, py-1.4.31, pluggy-0.3.1
rootdir: /Users/jmacdonald/w/pytest_test, inifile:
collected 1 items
tests/test_syntax_errors.py .
======================= 1 passed in 0.11 seconds ========================
________________________________ summary ________________________________
py27: commands succeeded
congratulations :)
mbp0 pytest_test[master+*] $
</code></pre>