运行 Jenkins 管道中的 Rego 测试
Running Rego Tests in Jenkins Pipeline
我正在尝试 运行 将测试用例重新作为 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 中读取数据文件。我该如何解决这个问题?
您在测试中指定输入数据的方式不是使用 input.json 文件,而是通过使用 with
.. as
构造模拟输入。示例测试模拟输入可能如下所示:
test_with_mocked_input {
allow with input as {
"deployment_name": "testing",
"replicas": 2
}
}
有关详细信息,请参阅 data mocking 上的文档。
我正在尝试 运行 将测试用例重新作为 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 中读取数据文件。我该如何解决这个问题?
您在测试中指定输入数据的方式不是使用 input.json 文件,而是通过使用 with
.. as
构造模拟输入。示例测试模拟输入可能如下所示:
test_with_mocked_input {
allow with input as {
"deployment_name": "testing",
"replicas": 2
}
}
有关详细信息,请参阅 data mocking 上的文档。