失敗したテストをどこにプッシュしますか?


15

GitHubリポジトリのブランチ設定を変更したばかりなので、[次の]ブランチではプルリクエストでCIビルドを渡す必要があります。

テストの失敗について、多くのチームメンバーとの議論が続きました。

コンテキストのために...

リポジトリには、リリースがあるときにのみPRされる[master]ブランチがあるため、[master]には、メジャー、マイナー、ホットフィックス、ベータ、アルファ/アルファに関係なく、最後のリリース時点のコードが含まれます。プレリリースビルド。

[次の]ブランチは「デフォルト」ブランチで、「リリース準備完了」コードを保持するつもりです。技術的には、そのブランチはいつでも[マスター]にPRされ、リリースされます。

個々のフォークには独自の開発ブランチがあり、貢献者は[次へ] PRを行います。

自明ではないPRをレビューするとき、貢献者のdevブランチを「レビュー」ブランチにマージし、すぐに修正できるものを見つけたら、変更と新しい(時々失敗する)テストをコミット/プッシュし、PR貢献者の開発ブランチに戻ります。彼らが私の変更をマージするとき、新しい失敗したテストをパスさせてプッシュし、それらのPRが同期します。それからPRを[次へ]にマージします。

しかし、この質問はテストに合格することではなく、失敗するテストに関するものです。


テストに失敗すると、修正する必要があるものが文書化されます。

既知のバグにはテストが記述されている必要があります。これにより、何が機能していないかがわかります。

技術的には、GitHubの問題リスト( ラベルフィルター処理されています)も同様です。バグを文書化するために多数の失敗したテストを用意することは良い習慣ですか?

[次へ]上の障害のビルドは、私たちがリリースする準備ができていないという意味では...しかし、その後、「リリース用であることは、」ビット子供を持って「準備ができている」のようなものでしょう-あなたは決してならない、非常にこのための準備ができて、何か、どこかで(変数の重要性が)リリースで必然的にうまくいかないでしょう。


したがって、合格したテストを[次へ]にプッシュするだけです。失敗したテストをどこにプッシュしますか?つまり、PR /レビュープロセスの外ですか?

たとえば、ユーザーが問題リストに新しいバグを報告し、失敗したテストスイートを作成したい-何をする必要があるか、どこで行うかを指定して、新しい貢献者がピックアップしやすくする最終的にはPRを修正します。

これらの失敗したテストをどこにプッシュすればよいですか?または、失敗したテストをどこかにプッシュすることをお勧めしますか?


@PhilipKendall良い点!私たちはまだプロセスを微調整しています。私はVSが「無視された」テストと「決定的でない」テストを押し付ける方法が好きではありません-下位レベルのテストの1つが失敗した場合、テストの半分が失敗したくないので、前提条件が満たされないときに決定的ではありません; これにより、テストは正しい理由で失敗を報告し、記述された内容をテストできない場合は「決定的でない」と報告します。それらはあまりないので(もう)、無視することはオプションかもしれません...しかし、それが無視された場合、テスト失敗ますか?
マチューギンドン

レビュープロセスの一部でコードの記述が必要なのはなぜですか?バグが見つかった場合は、PRにコメントし、オプションでPRを拒否します。
ジェームズ

@Jamesよく、私コードを書くのが好きです..より多くの貢献者が加わるのに加えて、私は実際のコーディングよりも多くのGitHubのメンテナンスとPR(広報)の仕事をしています!
マチューギンドン

回答:


12

この状況で私がやることは、失敗したテストを「無視」としてマークすることです。そうすれば、今後も修正する必要があるものを知ることができますが、ビルドが壊れることはありません。

また、各テストに問題を修正するための課題トラッカー参照をタグ付けすると、物事を簡単に結び付けることができます。


5

完全な開示:私は議論の参加者の一人です。

リポジトリのマスターブランチは、マスターブランチではありません。マスターへのマージは、「実際の目的」には役立たず、そのブランチはブランチが行うべきこと(つまりmove)を行っていません。
このブランチを、最新リリースへのタグとして悪用しています。

ブランチを使用する代わりに、タグを使用します。リリースしたいときは、トピックブランチのように「リリースブランチ」で必要な手順を行います。次に、それを[next]にマージし、それにタグを付けます。

[次の]果たす役割は、マスターブランチの役割です。リリースに対応したコードのみがそこに入ります。それ以外のものは[開発]ブランチになります。開発ブランチには、安定化される作業が含まれます。これは、[マスター]を削除し、[次へ]既に行った方法を再利用し、「安定性の低い」作業用に別のブランチ作成することを意味します。

未解決のバグを思い出させる、テストに失敗する必要があるというルールよりも例外であるため、必要に応じて不安定なブランチを作成して破棄することはあまり問題になりません


1
[マスター]に最新リリースがあると、最後のリリースから簡単に修正プログラムを発行できます。修正プログラムは[次へ]にPRされ、そこからすべてのdevブランチにPRできます。
マチューギンドン

2
ちょうどできますgit checkout -b HotFix ReleaseTag(つまり、ブランチがチェックアウト構文を正しく作成していることを覚えている場合)。これにより、ReleaseTagからHotFixブランチが作成されます
Vogel612
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.