0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

gossAdvent Calendar 2019

Day 10

gossテストシナリオ作成 その1

Last updated at Posted at 2019-12-09

まずgossでテストを実行する前に、テスト項目を作成する必要がある。

テストシナリオ作成第一歩

最もお手軽且つ個人的に最初に実行するのはgoss autoaddサブコマンドである。

前提としてgossは/usr/local/binにインストールされ、PATHが通っているものとする

goss autoadd [サービス名やユーザ名など]

[サービス名やユーザ名など]にはSystemdに登録されているservice名などを入力する。
すると、対象のサービスのSystemd上の状況(enable/disableやrunning/stoppedなど)の現在の状態を正とするテストシナリオをカレントディレクトリのgoss.yamlに出力する。

さらに対象サービスの実行ユーザの/etc/passwd上に載っているUIDやGIDなど、プロセスのステータス、ポートのListen状態などを現在の状態を正としてgoss.yamlに出力する。

またユーザ名を指定すれば、そのユーザが所属しているGroupに関する内容も引っ張ってきてテストシナリオとしてgoss.yamlに出力する。

さらにテストを作成する

この後もさらに goss autoadd keyword でテストを作成していくが
既にテストシナリオファイルがあると、上書きにならずどんどんテストシナリオを追記していく。

例えば

goss autoadd httpd
goss autoadd mariadb

と実行すると
goss.yamlにhttpdとmariadbのテストが両方書かれた状態となる。
後述するaddサブコマンドでのテスト追加でも同様です。

テストシナリオをファイル出力する際に、既にファイルがあれば一度読み込んでautoaddやaddの内容を追加した上で項目を並べなおしてファイル出力するようです。
ソース読めば確実にわかりますよ!
ただしこれはデメリットも一部ある(後述)ので注意は必要です。

この仕様のため、とりあえずautoaddでザクザクと実行するだけでざっくりとしたテストシナリオは出来上がります。

出力ファイル名を変える

テストシナリオファイル名は-gオプションで変更可能です。

goss -g WebServer.yaml autoadd httpd

またとりあえずデフォルトのgoss.yamlで出力しておいて、mvでファイル名を変更した後に
-gで変更後ファイル名にしてもちゃんと追記してくれます。

goss autoadd httpd
mv goss.yaml WebServer.yaml
goss -g autoadd mariadb

個人的には残していくテストシナリオファイル名は-gで何らかgoss.yaml以外のファイル名を付け、goss.yamlは試しで作成したテストや動作確認用として使うようにしています。

長くなってきたので続きはその2

0
0
1

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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?