Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

googletest のテスト結果を成功、失敗含めて azure pipelines の Web サイトで確認できるようにする #837

Merged

Conversation

m-tmatma
Copy link
Member

@m-tmatma m-tmatma commented Apr 4, 2019

googletest のテスト結果を成功、失敗含めて azure pipelines の Web サイトで確認できるようにする
closes: #835

Job status functions の指定を行うことにより、googletest の実行用の step が失敗してもテスト結果を公開する。

参考資料

※ appveyor には影響ないはずだが、共通で使用しているバッチファイルで実行ファイルに引数を追加している。
↑ 表示だけだが、appveyor に影響する修正が入った。

@m-tmatma m-tmatma added CI appveyor など CI 関連 【ChangeLog除外】 azure pipelines appveyor labels Apr 4, 2019
@m-tmatma m-tmatma added this to the v2.4.0 milestone Apr 4, 2019
@m-tmatma
Copy link
Member Author

m-tmatma commented Apr 4, 2019

テスト結果は https://dev.azure.com/sakuraeditor/sakura/_testManagement/runs?_a=runQuery
で確認できるみたい。

↑ このサイトはログインが必要。

@ds14050
Copy link
Contributor

ds14050 commented Apr 4, 2019

パイプ文字を含むコマンドを echo するときはパイプを ^ でエスケープしないと、意図せずコマンドの一部が実行されてしまいます。<元からあった問題です。

@ds14050
Copy link
Contributor

ds14050 commented Apr 4, 2019

元からあった問題ですが同じ行をいじったならついでにどうですか。

@m-tmatma m-tmatma changed the title [WIP] googletest のテスト結果を azure pipelines で公開する googletest のテスト結果を azure pipelines で公開する Apr 5, 2019
@m-tmatma m-tmatma marked this pull request as ready for review April 5, 2019 22:05
@m-tmatma
Copy link
Member Author

m-tmatma commented Apr 5, 2019

パイプ文字を含むコマンドを echo するときはパイプを ^ でエスケープしないと、意図せずコマンドの一部が実行されてしまいます。<元からあった問題です。

対応しました

@ds14050
Copy link
Contributor

ds14050 commented Apr 6, 2019

ありがとうございます。エスケープを忘れたのは私です。

@m-tmatma m-tmatma force-pushed the feature/xml-output-googletest branch from 80902c9 to c5a932d Compare April 13, 2019 09:01
@m-tmatma
Copy link
Member Author

#843 をマージしたので git pull --rebase origin master しました。
#843 はファイル名変更を伴いますが、conflict しなかった。
svn なら確実に conflict するが、git はすごい。

@m-tmatma m-tmatma changed the title googletest のテスト結果を azure pipelines で公開する [WIP] googletest のテスト結果を azure pipelines で公開する Apr 23, 2019
@m-tmatma
Copy link
Member Author

現状で googletest に失敗するとテスト結果が反映されないという致命的な問題があります。
WIP にします。

@m-tmatma m-tmatma force-pushed the feature/xml-output-googletest branch 2 times, most recently from 31ccc75 to 579977c Compare April 27, 2019 20:40
@m-tmatma m-tmatma force-pushed the feature/xml-output-googletest branch from 579977c to 63f46c9 Compare April 30, 2019 00:06
@m-tmatma m-tmatma changed the title [WIP] googletest のテスト結果を azure pipelines で公開する googletest のテスト結果を azure pipelines で公開する Apr 30, 2019
@m-tmatma
Copy link
Member Author

現状で googletest に失敗するとテスト結果が反映されないという致命的な問題があります。
WIP にします。

Job status functions の指定を行うことにより、googletest の実行用の step が失敗してもテスト結果を公開するようにできました。

以下は意図的に googletest を失敗させたものです。
https://m-tmatma.visualstudio.com/sakura/_build/results?buildId=232&view=ms.vss-test-web.build-test-results-tab

@m-tmatma
Copy link
Member Author

m-tmatma commented May 1, 2019

レビュー、プリーズ

@berryzplus
Copy link
Contributor

参照URLを見ているんですが、まだ目的が読み取れてないです。

@m-tmatma
Copy link
Member Author

m-tmatma commented May 1, 2019

目的はタイトルの通りです

@berryzplus
Copy link
Contributor

む。タイトルがよく分らんと言ってます。

Azule Pipelinesに公開すると何がどう変わるか、
そのために何をどう変えるか?はPRを見れば分かるのでいいです。

結局「~したい、そのためにAzule Pipelinesに公開する」なんだと思います。
つまり、タイトルは何かの目的に対する手段なんじゃないかと考えているわけです。
根っこにある目的が分からんのでナニガシタインダ?になってます。

何かに困ってる?

@m-tmatma
Copy link
Member Author

m-tmatma commented May 1, 2019

現状では、テストを実行しても実行しっぱなしで
azure pipelines のビルドの URL で結果の確認が
できません。

テストに失敗したらなんのテストが失敗したのか確認できるようになります。

appver で出来ているのと同じことができるようになります。

@m-tmatma
Copy link
Member Author

m-tmatma commented May 1, 2019

大前提が共有されてないのかもしれません。
appveyor で実現できることは基本的に
azure pipelines ではすべてできるように
したいからです。

@berryzplus
Copy link
Contributor

理解。Azule Pipelinesの構築は一旦完了していると誤解してました。
本来やれることの中にまだ未実装の部分があったんですね。

テストに失敗したらなんのテストが失敗したのか確認できるようになります。

そうですか・・・。いま #893 でテストのビルドに失敗しているんですが、ログ.zipをダウンロードしないと何に失敗したのか分からなくて「不便やなぁ~」と思っとりました。ある意味、このPRで解消したい「困った事態」に自分が遭遇していたのに気付いてなかったっていうわけですね...orz

で、それを踏まえると「テスト結果をAzulePipelinesのサマリページから辿れるようにする」が今回の目的になると思います。言葉尻、細かいとこは大めに見る感じでお願いします。

気になることは、Webページにテスト結果を公開するにはxmlをアップロードするしかないんだっけ?(他に方法はないんだっけ?)という点と、xmlをアップする方法って何か問題ありませんでしたっけ?(対策ができたんでしたっけ?)という点です。

Azule Pipelinesで xml のアップロード方式を採用するなら、appveyorへのバックポートは自然な流れだと思っています。なので、他に方法はないんだっけ?という観点でのウラを取ってからのレビュー参加になると思っています。

@m-tmatma
Copy link
Member Author

m-tmatma commented May 1, 2019

気になることは、Webページにテスト結果を公開するにはxmlをアップロードするしかないんだっけ?(他に方法はないんだっけ?)という点と、xmlをアップする方法って何か問題ありませんでしたっけ?(対策ができたんでしたっけ?)という点です。

標準出力が取得できません。

でも googletest が吐いたエラーは取れます。それがこれです。

以下は意図的に googletest を失敗させたものです。
https://m-tmatma.visualstudio.com/sakura/_build/results?buildId=232&view=ms.vss-test-web.build-test-results-tab

Error Message

D:\a\1\s\tests\unittests\test-sample.cpp:34 Expected equality of these values: Add(1, 2) Which is: 3 4

@m-tmatma
Copy link
Member Author

m-tmatma commented May 1, 2019

標準出力が取得できません。

まったくテスト結果が取れない状態に比べれば上記は優先度が低いので後で考えたらいい問題です。

@m-tmatma
Copy link
Member Author

m-tmatma commented May 4, 2019

理解。Azule Pipelinesの構築は一旦完了していると誤解してました。
本来やれることの中にまだ未実装の部分があったんですね。

#821 の後に、Azure Pipelines 用の環境変数を参照して
適宜、Azure Pipelines でビルドしたバイナリに情報を埋め込む対応も必要です。

現状 Azure Pipelines でビルドしたバイナリはビルド関連の情報は埋め込んでいないので
情報量的にはローカルビルドと同じです。

@m-tmatma
Copy link
Member Author

m-tmatma commented May 4, 2019

xmlをアップする方法って何か問題ありませんでしたっけ?(対策ができたんでしたっけ?)という点です。

appveyor で行っているのは appveyor AddTest という appveyor 固有コマンドです。
https://www.appveyor.com/docs/build-worker-api/#add-tests

以下には yaml を使う記載がありますが、
https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/test/publish-test-results?view=azure-devops&tabs=yaml

appveyor AddTest のようなコマンドの説明は探している範囲ではありませんでした。

@m-tmatma m-tmatma changed the title googletest のテスト結果を azure pipelines で公開する googletest のテスト結果を成功、失敗含めて azure pipelines で確認できるようにする May 4, 2019
@m-tmatma m-tmatma changed the title googletest のテスト結果を成功、失敗含めて azure pipelines で確認できるようにする googletest のテスト結果を成功、失敗含めて azure pipelines の Web サイトで確認できるようにする May 4, 2019
@m-tmatma
Copy link
Member Author

m-tmatma commented May 4, 2019

タイトル変えました。

@berryzplus
Copy link
Contributor

よさげに見えます。

自己レス。

気になることは、①Webページにテスト結果を公開するにはxmlをアップロードするしかないんだっけ?(他に方法はないんだっけ?)という点と、②xmlをアップする方法って何か問題ありませんでしたっけ?(対策ができたんでしたっけ?)という点です。

① Azule Pipelinesには appveyor AddTest のようなコマンド がない
 ...ので、xmlをアップロードするしかない(他の方法は、少なくとも「見つかっていない」。
②テスト結果xmlをアップロードする方法ではtests1.exeの標準出力が取れない
 ...が、GoogleTestが吐いたエラーメッセージは取れるから大きな問題じゃない

気になる点も解消。

Copy link
Contributor

@berryzplus berryzplus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTMです。

@m-tmatma m-tmatma merged commit 3de3153 into sakura-editor:master May 4, 2019
HoppingTappy pushed a commit to HoppingTappy/sakura that referenced this pull request Jun 11, 2019
…-googletest

googletest のテスト結果を成功、失敗含めて azure pipelines の Web サイトで確認できるようにする
@m-tmatma m-tmatma deleted the feature/xml-output-googletest branch July 5, 2019 21:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
appveyor azure pipelines CI appveyor など CI 関連 【ChangeLog除外】 UnitTest
Projects
None yet
3 participants