3

テスト中にテキストをコンソールに出力して、何が起こるかを知り、テストの履歴を取得しようとしていますが、printf も $stdout.write も何も機能していないようです。

テキストログファイルを使用してそれで終了する必要がありますか、それともjenkinsコンソールに出力することは可能ですか?

4

3 に答える 3

1

以下は、Jenkins で Rails アプリの RSpec テストを実行するための私の jenkins 構成のコピーです。

[ -d jenkins ] && rm -rf jenkins
mkdir jenkins

cp ~/configs/yourApp/default-db-config config/database.yml

rake db:migrate
rake db:test:prepare

export RAILS_ENV=test
export SPEC_OPTS="--no-drb --format documentation --format html --out jenkins/rspec.html"

rake spec

最初に、ワークスペースに以前のテスト履歴があれば削除します。次に、テスト出力を保存するための jenkins ディレクトリをワークスペースに作成します。

次に、動作中の DB 構成を使用してテストするためにアプリをセットアップします (DB 構成ファイルを git リポジトリに保存しません)。

最後に、必要に応じて dev DB を移行し、テスト DB を準備し、RAILS_ENV を test に設定し、指定された SPEC_OPTS でテストを実行します。

重要なビットは次のとおりです。

--format documentation ... これにより、テストの進行状況の適切な出力がコンソール ログに送信されます。テストを適切に記述すれば、使用を検討した可能性のある puts コマンドよりもはるかに便利です。

--format html ... 先ほど作成した --out 属性で指定した jenkins ディレクトリにテスト結果の HTML ファイルを出力します。このジョブのメイン ページにこれらの結果を表示するには、ジョブの説明に次を追加します。

<iframe src='http://jenkins.your-domain.com/job/your-tests/ws/jenkins/rspec.html' width="100%" height="600" frameborder="0"/>

これで、RSpec のより便利なジェンキンス テスト ジョブを実行できるようになることを願っています。

于 2013-11-09T00:52:59.737 に答える
0

Jenkins がこれを変更するかどうかはわかりませんが (私はそうは思いません)、Rspec では次のように記述できます。

puts response.body

また

puts "My mommy made me mash my M&M's"

またはあなたが望むものは何でも、それはコンソール/結果に置かれます

于 2013-09-17T14:23:03.820 に答える