擅长:python、mysql、java
<p>我会尝试用一个只在PyCharm或其他IDE中设置的参数来控制它。你知道吗</p>
<p>也就是说,可以将<code>skipUnless(...)</code>与PyCharm测试配置中定义的环境变量相关的条件一起使用。你知道吗</p>
<p>下面是一个完整的示例:</p>
<pre><code>import os
import unittest
def is_prime(n):
""" Return whether `n` is prime. """
return n == 2 or not (n % 2 == 0 or any(n % i == 0 for i in range(3, n, 2)))
class IsPrimeTest(unittest.TestCase):
@unittest.skipUnless(os.getenv('MYPROJECT_DEVELOPMENT_TEST'), reason="Lengthy test")
def test_is_prime(self):
self.assertTrue(is_prime(2))
self.assertTrue(is_prime(3))
self.assertFalse(is_prime(4))
self.assertTrue(is_prime(5))
</code></pre>
<p>从shell运行时,测试确实被跳过:</p>
<pre><code>$ python3 -m unittest test_example.py
s
Ran 1 test in 0.000s
OK (skipped=1)
</code></pre>
<p>如果选择“编辑配置…”,则可以在测试配置中设置特定的环境变量,如下面的屏幕截图所示。通过此更改,所讨论的测试实际上是在PyCharm中运行的(未显示)。你知道吗</p>
<p><a href="https://i.stack.imgur.com/njHW7.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/njHW7.png" alt="PyCharm unit test configuration showing environment variables set"/></a></p>