我在Lua上写了几个孔自定义插件。我使用的是空2.3.3和Lua 5.1。
我有一些测试用例(单元测试+集成测试),我正在使用pongo运行-coverage选项来运行它们。我已经安装了luacov (同时还安装了luarocks ),我的所有测试都通过了,但是没有用覆盖数据生成luacov文件。我不是从Docker运行pongo的,我已经在我的本地机器上安装和配置了它(它是LinuxUbuntu20.04)。
我已经尝试了以下几点:
中设置。
发布于 2021-04-02 20:37:32
一个快速的方法是修改pongo。
编辑pongo.sh文件以:
向已崩溃的--coverage
luacov
cat luacov.report.out找出叫busted的地方,我的第959行:
"/bin/sh" "-c" "bin/busted --coverage --helper=bin/busted_helper.lua ${busted_params[*]} ${busted_files[*]};luacov;cat luacov.report.out"安装luacov,在安装失败后编辑assets/Dockerfile添加luacov:
&& luarocks install busted-htest \
&& luarocks install luacov \pongo run会给你
[...]
==============================================================================
Summary
==============================================================================
File Hits Missed Coverage
-------------------------------------------------------------------------------------------------------
/kong-plugin/kong/plugins/myplugin/schema.lua 105 1 99.06%
/kong-plugin/spec/myplugin/01-schema_spec.lua 199 5 97.55%
[...]发布于 2021-05-06 21:50:13
您可以创建一个基于pongo的码头映像。
spec/unit/docker/Dockerfile
FROM kong-pongo-test:2.3.2
USER root
RUN luarocks install luacov
WORKDIR /kong-plugin
COPY . .spec/unit/docker/run.sh
#!/bin/sh
busted --coverage spec/unit
luacov
cat luacov.report.out跑
docker build -f spec/unit/docker/Dockerfile -t my-coverage .
docker run my-coverage sh spec/unit/docker/run.sh发布于 2021-07-08 20:19:04
Pongo在这方面获得了一些支持(仍然是公关)。注意,它只包括单元测试,而不是集成测试。
请参阅https://github.com/Kong/kong-pongo/pull/184
顺便说一句:其他程序太复杂了,海事组织,您可以添加.pongo/pongo-setup.sh来安装LuaCov,并将.luacov文件从/kong-plugin移动到/kong。这应该是唯一需要的。
可以通过传递标志来运行覆盖范围的测试,而不需要编辑pongo或dockerfile。例如,试试pongo run -- --coverage。
https://stackoverflow.com/questions/66866103
复制相似问题