在Travis CI中测试基于matplotlib的图

Dou*_*tti 13 python plot matplotlib travis-ci

我有一个包有一个模块,可以帮助用户使用matplotlib生成特定的图.当我在Travis内部的单元测试中调用这些函数时,出现以下错误:

RuntimeError: Invalid DISPLAY variable
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

生成绘图后,我的函数通常会调用pyplot.show(),这会打开一个需要关闭的窗口.当我在Travis内部的单元测试中调用这些函数时,它们会永远挂起来.

如何测试使用Travis CI生成这些图?

Dou*_*tti 13

要在Travis中设置DISPLAY变量,您需要从VM内部模拟显示.他们xvfb通过在before_scriptyout .travis.yml文件中添加以下内容来教授如何使用它:

before_script: # configure a headless display to test plot generation
- "export DISPLAY=:99.0"
- "sh -e /etc/init.d/xvfb start"
- sleep 3 # give xvfb some time to start
Run Code Online (Sandbox Code Playgroud)

为了让特拉维斯不要挂在地块上,根本就不要打电话pyplot.show().如果你测试太多的情节,请务必打电话pyplot.close()或者它会抱怨有太多的打开图像.

  • 看来这现在失败了,但是设置`services:-xvfb`的另一种选择如图[here](https://docs.travis-ci.com/user/gui-and-headless-browsers/#using- services-xvfb)似乎有效。 (2认同)