2
0

More than 1 year has passed since last update.

TavernでStageごとの設定を使い分ける方法

Last updated at Posted at 2021-12-14

Tavernとは

YamlでAPIの自動テストがかけるテストフレームワークです
https://tavern.readthedocs.io/en/latest/index.html

他の方が丁寧な説明記事を投稿されていますので、Tavern自体の説明はそちらをご覧になって頂くのがよろしいかと

共有したいこと

Stageごとにエンドポイントを切り替える方法がなかなか見つからなかったので、その方法をシェアします

公式ドキュメントにヒントが載っていたので、そのまま使いました
testファイルのディレクトリ構成は下のようになっています

tests/
├── __init__.py
├── test_dev.sh
├── test_api.tavern.yaml
└── values
    ├── __init__.py
    ├── dev_values.yaml
    └── common.yaml

test_api.tavern.yamlがtest対象のファイルで、
dev_values.yamlに開発環境に依存するデータを
common.yamlに共通に使うデータを設定しています

テスト実行時は下のように--tavern-global-cfgに両方のファイルを指定しています
コマンドが長いので、test_dev.shに下のコマンドを書き込んで、テストの実行時は、test_dev.shを実行しています

test_dev.sh
#!/bin/bash
tavern-ci --tavern-global-cfg tests/values/dev_values.yaml tests/values/common.yaml

今後開発が進むと、stg_values.yamlとかが増え、そのファイルを指定したtest_stg.shが増えていく予定です

なお、test_api.tavern.yaml内に!includeで共通ファイルを指定して、ステージごとのファイルを--tavern-global-cfgに設定した場合は、エラーになってしまいました
Using the run() functionも試しましたが、tavernのテストファイルのアドレス解決が素直に出来なかったので、諦めました

終わりに

目的は達成できたのですが、もっとスマートな実現方法もありそうな気がしています
良い方法がありましたら、教えて頂けると嬉しく思います

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0