<p>为什么<code>py.test</code>在那里运行<code>TestFoo.test_foo()</code>测试?我知道它运行<code>TestBar.test_foo()</code>。在</p>
<p><code>test_foo.py</code>的内容:</p>
<pre><code>import unittest
class TestFoo(unittest.TestCase):
def test_foo(self):
print "in test_foo"
</code></pre>
<p><code>test_bar.py</code>的内容:</p>
^{pr2}$
<p>输出:</p>
<pre><code>[999]anarcat@marcos:t$ pytest -v
no test dir found testing here: /tmp/t
=========================== test_bar.py ============================
test_bar (test_bar.TestBar) ... in test_bar
ok
test_foo (test_bar.TestBar) ... in test_foo
ok
test_foo (test_foo.TestFoo) ... in test_foo
ok
=========================== test_foo.py ============================
test_foo (test_foo.TestFoo) ... in test_foo
ok
*******************************************************************************
Ran 4 test cases in 0.00s (0.00s CPU)
All 2 modules OK
</code></pre>
<p>如果<code>TestBar</code>与<code>TestFoo</code>放在同一个文件中,<code>TestFoo.test_foo()</code>测试只运行一次:</p>
<pre><code>import unittest
class TestFoo(unittest.TestCase):
def test_foo(self):
print "in test_foo"
class TestBar(TestFoo):
def test_bar(self):
print "in test_bar"
</code></pre>
<p>输出:</p>
<pre><code>[1001]anarcat@marcos:t$ pytest -v
no test dir found testing here: /tmp/t
=========================== test_foo.py ============================
test_bar (test_foo.TestBar) ... in test_bar
ok
test_foo (test_foo.TestBar) ... in test_foo
ok
test_foo (test_foo.TestFoo) ... in test_foo
ok
*******************************************************************************
Ran 3 test cases in 0.00s (0.00s CPU)
All 1 modules OK
</code></pre>
<p>不应该py.测试忽略进口背后的测试?在</p>