本地词,为凡人。

easyci的Python项目详细描述


note:easyci只适用于git存储库。

不要再担心签入损坏的代码。无需维护CI服务器。不必为你的私人项目花那么多钱。easyci让您安心,就像一个好的ci服务,但没有所有额外的费用。

easyci通过gitpre-commitpre-push钩子操作,以确保代码在提交/推送之前通过测试。

$ git commit
Running test: flake8
Passed
[master b2e6fa1]test commit
1 file changed, 2 insertions(+), 2 deletions(-)

easyci还确保不重复运行测试。如果在使用eci test之前运行了测试,并且没有文件更改,则它不会再次尝试运行测试。

$ eci test
Running test: flake8
Passed
$ git commit
OK Files not changed
[master b2e6fa1]test commit
1 file changed, 2 insertions(+), 2 deletions(-)

这意味着,如果您作为工作流的一部分定期运行测试,那么在使用easyci时实际上没有效率成本,但是您可以放心地知道,如果您忘记运行测试,将不允许提交/推送。

easyci的设计是为了转移你逃避考试的负担。为此,可以让easyci监视项目的更改并自动运行测试,以便在您要提交更改时,您的测试已经运行。在单独的shell会话中执行此操作:

$ # from anywhere in your project
$ eci watch
Watching directory `/path/to/project`. Use ctrl-c to stop.

安装/设置

首先,使用pip安装easyci。

pip install easyci

接下来,为您的项目设置easyci。

cd /path/to/project
eci init

这将安装必要的git钩子并放置一个简单的配置文件eci.yaml。您应该修改配置文件以实际运行测试。

运行测试

测试由git的pre-commitpre-push挂钩自动运行。手动触发测试:

# from anywhere in your project
eci test

收集测试结果

easyci通过使用rsync将项目复制到临时目录来保留项目的状态。在某些情况下,您确实需要测试生成的文件。例如,如果测试生成代码覆盖率数据或其他测试数据,则需要使用选项将这些文件从临时目录复制回项目目录。这可以通过配置collect_results来完成。

例如,下面的配置将复制子目录htmlcov下的所有内容,在本例中,它包含代码覆盖率报告。

tests:-coverage run -m py.test && coverage htmlcollect_results:-htmlcov/***

有关collect_results的模式格式的更多信息,请参阅rsync的手册页,该手册页用于在内部复制测试结果。

配置

配置位于存储库根目录的文件中,eci.yaml

keytypeDescription
^{}^{}This is a list of commands to run tests.
^{}^{}The number of passing test runs to remember.
^{}^{}Copy files matching these patterns back to the project. The patterns must be in an ^{}-compatible format.

命令

所有命令都应该在目标存储库中运行。

ECI初始

初始化项目以便与easyci一起使用。这将安装必要的Git钩子(预提交+预推),并且如果一个配置文件不存在,则添加配置文件。

eci试验

运行测试。如果在测试运行历史记录中找到通过的测试运行,则这不会运行任何测试。

ECI手表

监视当前存储库的更改并自动运行测试。

eci-gc

运行内务处理任务以释放空间。目前,这只会删除已保存但未使用(无法访问)的测试结果。

ECI清除历史记录

清除测试运行历史记录。历史记录通常用于跟踪测试是否已针对项目的特定状态运行,以避免重复运行测试。此命令清除历史记录,使下一个eci test命令始终运行测试。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
javascript生成两点之间的固定纬度和经度   java为什么不删除并重命名文件?   求数组的和   java在漂亮面孔中使用正则表达式   SOAP(java)中的Hello World。如何修复它?   java I获取应用程序生成错误,配置为“”的资源“attr/arc_position”的值重复   云基础环境中的Java SFTP客户端应用   谷歌应用程序引擎Java查询日期不正常?   java使用cancel按钮对JOptionPane InputDialog循环进行转义   java数字格式总是返回异常   xquery Java Saxon API以“追加”模式写入文件   java Azure函数在第二个插槽中没有响应   java在构建Play应用程序后向其添加动态依赖项   json如何使用Jackson mapper for java。木卫一。可序列化类型字段?