告诉Travis跳过测试,但继续将它包含在我的主要测试套件中?

Ric*_*ard 4 django travis-ci

我正在使用Django 1.8,我有一个管理命令,对我数据库中的某些项进行地理编码,这需要互联网连接.

我已经为这个管理命令编写了一个测试.但是,测试运行脚本,因此它还需要Internet连接.

在将测试推送到GitHub后,我的CI被破坏了,因为Travis没有外部互联网连接,所以它在此测试中失败了.

我想保留这个测试,我想在python manage.py test本地运行时继续包含它.

但是,有没有办法可以明确告诉特拉维斯不要为这个特定的测试而烦恼?

或者,是否有一些其他干净的方式,我可以将此测试作为我的主要测试套件的一部分,但阻止它打破特拉维斯?

Dom*_*oin 12

也许您可以装饰您的测试,@unittest.skipIf(condition, reason)以测试Travis CI特定环境变量是否存在以跳过它.例如:

import os
...
@unittest.skipIf("TRAVIS" in os.environ and os.environ["TRAVIS"] == "true", "Skipping this test on Travis CI.")
def test_example(self):
  ...
Run Code Online (Sandbox Code Playgroud)