我正在尝试使用dredd和api blueprint运行多个 api 调用来测试站点。我想在 circleCI 上运行测试,因为 Selenium 测试在同一个地方运行。每笔交易都需要附有两个令牌,这些令牌在标头中设置为 cookie。理想情况下,这些将在 dredd.yml 文件中设置。在本地机器上运行时,如果我用实际值替换ACCESS_TOKEN
和,测试会按预期运行。REFRESH_TOKEN
圈子.yml:
test:
override:
- dredd
dredd.yml 标头
header: ['Cookie: access_token=ACCESS_TOKEN; refresh_token=REFRESH_TOKEN']
其中 ACCESS_TOKEN 和 REFRESH_TOKEN 被 circleCI 的环境变量中设置的实际值替换。我也试过access_token=$[ACCESS_TOKEN]
:access_token=$["ACCESS_TOKEN"]
和access_token=$ACCESS_TOKEN
。这些都没有在第一个 api 调用的标头中被替换。
标题看起来像:{"Content-Type":"application/json; charset=utf-8","User-Agent":"Dredd/1.4.0 (Darwin 14.5.0; x64)","Cookie":" access_token=$ACCESS_TOKEN; refresh_token=$REFRESH_TOKEN"}
我是 yaml 文件的新手,所以我可能缺少一些基本的东西,但我确实搜索了一段时间。hooks 文件是用 node.js 编写的,所以我认为 ruby/rails 帮助在这里没有用。如果我在问题中遗漏了任何内容,请随时告诉我。