![](/img/trans.png)
[英]How do I integrate travis ci with codeclimate test coverage in Python?
[英]How to test Pl/Python PostgreSQL procedures with Travis CI?
我正在尝试为Travis CI中的一些PL / Python PostgreSQL程序设置CI。
我尝试了几种方法:
1)对于我曾试图假设的遗留基础设施,已经安装了PL / Python,但它没有成功:
The command "psql -U postgres -c 'CREATE EXTENSION plpythonu;'" exited with 1.
0.01s$ psql -U postgres -d test -c 'CREATE LANGUAGE plpythonu;'
ERROR: could not access file "$libdir/plpython2": No such file or directory
2)尝试在开头添加sudo apt-get update && sudo apt-get -y install postgresql-plpython-9.4
命令。 它也失败了,因为这个命令开始替换已经安装在Travis环境中的PostgresSQL 9.4。
3)还试图在配置中使用基于容器的基础设施:
addons:
postgresql: "9.4"
apt:
packages:
- postgresql-plpython-9.4
也没有成功。
在Travis CI中测试PL / Python过程的好方法是什么?
我能够使用以下.travis.yml获得python-tempo构建 :
sudo: required
language: python
before_install:
- sudo apt-get -qq update
- sudo /etc/init.d/postgresql stop
- sudo apt-get install -y postgresql-9.4
- sudo apt-get install -y postgresql-contrib-9.4 postgresql-plpython-9.4
- sudo -u postgres createdb test
- sudo -u postgres createlang plpython2u test
- sudo pip install jinja2
script:
- >
sudo -u postgres psql -d test -c 'CREATE OR REPLACE FUNCTION py_test()
RETURNS void LANGUAGE plpython2u AS $$
import jinja2
$$;'
- sudo -u postgres psql -d test -c 'SELECT py_test();'
您的旧配置尝试存在各种问题,包括在安装9.4之前不停止现有的PostgreSQL 9.1实例,并且未正确指定plpython语言。 我相信一些命令也没有作为正确的用户运行。 所有问题都通过上述配置解决。 可能有一些方法可以改进这种配置,但是一旦我开始工作,我就停止了。
基于容器的配置将不起作用,因为postgresql-plpython-9.4
当前不在预先批准的软件包的白名单中 。 但是, postgresql-plpython-9.5
是,所以如果你想迁移到基于容器的配置,你可以尝试遵循 postgresql-plpython-9.4
的包批准过程或者等待PostgreSQL 9.5的GA版本并尝试迁移然后。
现在已经确认已将我之前的评论转换为答案...
正如Travis文档中所述,正确的安装方法是在before_install阶段更新依赖关系(很像列表中的选项2)。
唯一的问题似乎是您在升级之前没有停止Postgres。
我不完全知道细节,但是,如果你把文件放在正确的位置,你可以从程序本身调用它
import fileName.className
要么
import methodName from fileName.className
编辑:我查了一下,只是把它放在你正在运行的程序所在的目录(cmd,idle,ect。)中并调用它,或者将它放在一个文件夹中并将文件夹名称添加到代码中
例如。
import folder/fileName.ClassName
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.