複数のクルーズ コントロール .net プロジェクトからのテスト結果をマージする
-
27-10-2019 - |
質問
SOA 環境では、Cruise Control .net に多くのプロジェクトが存在する傾向があります。現時点では約 30 個ありますが、今後さらに増えるでしょう。CI では焦点が狭いのは良いことですが、チーム全体のコード品質やその他の指標の統計を提示したいと考えている私にとって、すべてのプロジェクトからデータを収集するのは少し面倒です。それで私は疑問に思う:誰かまとめプロジェクトみたいなものを作った人はいますか?ccnets mergetask を使用すると、同じ名前を持たない限り実行できるはずですよね?
解決
何も問題ありませんでした
グリーン ビルドを生成する nulltask と、他のすべてのプロジェクトへの膨大な参照を持つマージ タスクを追加しました。統計 xpath は各タイプのレポートを 1 つだけ想定しているため、多少の調整が必要ですが、それだけです。
理想的には、すべてのレポートを各プロジェクトから統計プロジェクトにコピーする方法でしたが、名前付けとクリーンアップの修正により、ソリューションはさらに複雑になりました。スプリントで少数の新しいプロジェクトを作成しない限り、これは問題ありません。
例:
<triggers>
<intervalTrigger seconds="$(MyTimeBetweenChecks)" name="continuous" buildCondition="IfModificationExists" />
<scheduleTrigger time="23:55" buildCondition="ForceBuild" name="ContinousTriggerNightly">
</scheduleTrigger>
</triggers>
<tasks>
<nullTask/><!-- returnerar success så projektet inte failar för det inget gör-->
</tasks>
<publishers>
<merge>
<files>
<!-- nunit NCover-NUnit-Results-->
<file>$(ServerDictionary)TemplateService_All\Artifacts\NCover-NUnit-Results.xml</file>
<file>$(ServerDictionary)InvoiceService_All\Artifacts\NCover-NUnit-Results.xml</file>
<file>$(ServerDictionary)ContactService_All\Artifacts\NCover-NUnit-Results.xml</file>
<!-- fxcopreport-->
<file>$(ServerDictionary)TemplateService_All\Artifacts\fxcopreport.xml</file>
<file>$(ServerDictionary)InvoiceService_All\Artifacts\fxcopreport.xml</file>
<file>$(ServerDictionary)ContactService_All\Artifacts\fxcopreport.xml</file>
<!-- ncover_symbolmodule-->
<file>$(ServerDictionary)InvoiceService_All\Artifacts\ncover_symbolmodule.xml</file>
<file>$(ServerDictionary)ContactService_All\Artifacts\ncover_symbolmodule.xml</file>
<!-- ncover_SymbolModuleNamespaceClassMethod-->
<file>$(ServerDictionary)ExportService_All\Artifacts\ncover_SymbolModuleNamespaceClassMethod.xml</file>
<file>$(ServerDictionary)PackageService_All\Artifacts\ncover_SymbolModuleNamespaceClassMethod.xml</file>
</files>
</merge>
所属していません StackOverflow