0

我正在尝试将 rego 测试用例作为 jenkins 管道运行的一部分运行。我以前将我的测试用例和测试用例的输入数据放在一个文件中,它们都运行成功。

我修改了我的测试用例以从外部 json 文件中读取数据,当前文件夹结构如下:test.rego 文件和 input.json 文件在同一文件夹中。

这就是我在 Jenkins 中用来运行测试的方法*./opa test -b -v .*

测试失败并出现错误data.utilities.test_no_OwnerContact: FAIL 我假设这是因为 rego 测试无法从 input.json 读取数据

当我尝试使用显式传递输入文件时-i/--input,我在 jenkins 中看到一个错误Error: unknown flag: --input

我不确定我使用的是必需的标签还是其他标签。任何帮助,将不胜感激。谢谢!

编辑:我打印了包中的文件,并且看到了 data.json 文件。因此 OPA 引擎无法从 Bundle 中读取数据文件。我该如何解决这个问题?

4

1 回答 1

0

在测试中指定输入数据的方式不是使用 input.json 文件,而是使用with..as构造模拟输入。一个示例测试模拟输入可能如下所示:

test_with_mocked_input {
    allow with input as {
        "deployment_name": "testing",
        "replicas": 2 
    }
}

有关更多信息,请参阅有关数据模拟的文档。

于 2021-10-05T17:52:46.763 回答