1

メーリングリストのあるプログラムの自動テストスーツを書いています。使用するツールを構成するためのベストプラクティスを決定しようとしています。テストでは、さまざまな電子メールアドレスに電子メールを送信してから、アプリケーションを使用してアクション(承認、拒否、破棄)を実行する必要があります。次に、スクリプトは最終的にメールをチェックし、受信した電子メールを、受信する予定の電子メールのリストと比較する必要があります。これが私が使っているツールのリストです。

Ruby、Rake、Selenium Webdriver、テストユニット、Jenkins

私がやりたかったのは、すべてを最後のステップ(電子メールのチェック)の依存関係(レーキ内)として扱うことでした。私の問題は、すべての電子メールを一意にしようとしたときに発生しました。テストが実行された時刻と、テスト内の各電子メールに割り当てられた番号を電子メールに埋め込む予定です(この番号は、テストの実行ごとに同じになるため、どこに行くべきかを特定できます)。テストの開始からテストの終了までのタイムスタンプを渡す方法が必要です。

私の問題に対する解決策は、レーキを取り除くこと(タスク間で変数を渡す方法がわからない、またはわからないため)、またはファイルに書き込んでから別のタスクでファイルにアクセスすることです。

何かお勧めはありますか?

4

1 に答える 1

1

次のように、各テストを実行する前に、RakefileにENV変数を設定することをお勧めします。

ENV['TIMESTAMP_CONTROL'] = Time.now.to_s

その後、他のRuby変数と同じように再度リセットするまで、スクリプトとRakefileの任意の場所で変数を参照できます。

assert_equal ENV['TIMESTAMP_CONTROL'], @email_response_text
于 2013-02-12T14:31:26.363 に答える