TFSを再発見した方法

新しいTFSディスカバリー



Microsoft TFSというフレーズを聞いたときに最初に得られる関連付けは何ですか? 大きくて不器用で企業的なもの。 これは、Visual Studio Team Servicesの登場とMS TFS 2015のリリース前に起こったこととまったく同じです。最初はTeam Foundation Serverのクラウドバージョンであり、プライベートバージョンの開発の約3か月先です。 更新されたTFS / VSTSの主な革新の1つは、新しいアセンブリシステムでした。 このシステムにより、プロジェクトの実際の組み立てから、欠陥の自動確立や通知の送信まで、何でもできる組み立て手順を簡単に書くことができます。 さらに、新しいバージョンは、TFSデータベース内のタスク、欠陥、およびほぼすべてのエンティティを操作するための高度なREST APIを提供します。







そのため、新しい開発ライフサイクル管理システムの選択に直面したとき、この新しいバージョンのMS TFSに決めました。 TFSをフルサイクル(計画、開発、テスト、展開)で使用し、最初はすべて順調に進みました。 ビルドシステムに設定するタスクの複雑さが増すにつれて、問題も発生しました。 幸いなことに、REST APIと独自のビルド手順により、それらを正常に解決できました。 次に、問題とその解決方法について説明します。









さらにテストが必要なときにウィンドウを出ない方法



自動テストを実行するビルドが必要でした。 ただ? しかし、アイデアは、異なるシステムでの複数のテスト実行を組み合わせて、テストの通過に関する単一のレポートを表示することでした。 解決策は、複数のテストを実行してビルドすることです。 時間枠を超えてクロールを開始するまで、すべてが順調でした-テスト実行は次々に実行されました。 また、アセンブリを並列化する「すぐに使える」ソリューションはありませんでした。 そして、簡単なアイデアが思いつきました-マスターアセンブリ:









このアイデアの実装から、 Parallel Builds拡張機能が生まれました







並行性を確保するために、拡張機能には2つのアセンブリ手順が含まれています。







  1. Starter-リストされたアセンブリ定義を起動します。 各アセンブリは、独自の設定で始まります。 これにより、異なるアセンブリを完全に分離し、異なるエージェントと異なる環境変数を使用できます。
  2. Awaiter-実行中のアセンブリが完了するまで待機し、テスト結果を収集します。 さらに、現在のアセンブリの[概要]ページに「元の」アセンブリへのリンクを追加します。 これは主に、問題が発生した場合にこれらのアセンブリのコンソール出力とログを表示できるようにするために必要です。


最も単純な場合、マスターアセンブリは2つのステップのみで構成されます。













この拡張機能は、クラウドVSTSとプライベートTFSの両方で機能します。 したがって、typescriptで書かれたエージェントバージョン2.0が必要です。







ロボットに欠陥を作らせます-それは鉄です



テストの自動化、それは自動テストの数ではなく、頭の中にあります。 したがって、テストの開始で失敗したテストの3回目の連続分析の後、この「知的」作業をロボットに移行することが決定されました。 別の拡張子? そうです。 アイデアは次のとおりです。









そのため、 Parallel Builds拡張機能の一部として、AutoDefectsというステップが登場しました。







欠陥の自動作成により、テストの失敗に対する必須の対応を保証し、ライフサイクルを追跡し、失敗の種類に関する統計を収集することができます。自動テストの欠陥、環境の展開、またはテスト中のシステムの機能欠陥です。







ジェンキンスは結果を共有しません-修正



機能横断型のチームで開発し、開発プロセスにより、チームは開発ツールを使用できます。 1つの条件があります-TFSと統合する必要があります。 さまざまな理由から、一部のチームはJenkinsを使用して構築しています。 TFSとJenkinsの統合の現在のバージョンでは、Jenkinsでビルドを実行し、完了するのを待つことができます。 ただし、残念ながら、このアセンブリにはテスト結果はインポートされません。







幸いなことに、マイクロソフトは最近、フリーソフトウェアの動きをサポートし、その開発の一部をGitHubに公開しました。 を含む TFSのアセンブリタスク







次に、 プルリクエストを示します。これは、JenkinsQueueJobにJenkinsから結果をインポートする機能を追加します。 さらに、TFSの[ビルドの概要]ページにリンク(Jenkinsの相対タスク)を追加できます。 たとえば、Jenkinsサーバーまたは追加のレポート(Yandex.Allureなど)に保存されているこのアセンブリのアーティファクトへのリンクを追加できます







TFS / VSTSの新しいバージョンを使用すると、まったく異なるタスクに合わせてカスタマイズでき、TFSのように見えたモンスターのように見えなくなります。 また、VSTSを使用する小規模なチームでは無料であるため、企業だけでなく「スタートアップ」にとってもツールになる可能性があります。







いつものように、ソースコードはGitHubで入手できます。








All Articles