【问题标题】:Running Rego Tests in Jenkins Pipeline在 Jenkins 流水线中运行 Rego 测试
【发布时间】:2021-03-08 16:54:50
【问题描述】:

我正在尝试将 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 中读取数据文件。我该如何解决这个问题?

【问题讨论】:

    标签: jenkins open-policy-agent rego


    【解决方案1】:

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

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

    有关详细信息,请参阅data mocking 上的文档。

    【讨论】:

      猜你喜欢
      • 2018-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-29
      • 2022-09-26
      • 1970-01-01
      • 2013-01-31
      • 2017-12-21
      相关资源
      最近更新 更多