7

Visual Studio2010/2012のReSharper7で、「合格」と「不合格」の2つの永続的なテストセッションを設定しました。私は毎日Passingセッションを実行しており、前回以降のリグレッションの失敗をすばやく特定できます。その場合、それらのテストをFailingに移動し、時間があればそれに取り組むことができます。それは機能し、素晴らしいです。

問題は、チーム間で共有したい設定のReSharperドキュメントで提案されているように、これらのセッションを「ソリューションチーム共有」オプションとしてエクスポートする方法が見つからないことです。明らかに、同じテストセッション構造を利用できる時間内に他の人を雇うことができると有益です。しかし、セッションを変更すると、「PatientPortal.sln.DotSettings.user」ファイルではなく、「PatientPortal.sln.DotSettings.user」ファイルのみが更新されるように見えます。

RESHARPER->オプション->ユニットテストで、「ユニットテストセッションの保存と復元」をチェックし、「保存先」-「ソリューション[名前]チーム共有」を選択しました。

私が経験している困難さのために、ReSharperユニットテストセッションはチェックインして共有するように設計されていないようですが、この場合はそうすることが生産的であると思うので、誰もがその方法を知っていますかこれ?

4

3 に答える 3

6

単体テストセッションの保存機能のオープンチケットがあります。

RSRP-275264ユニットテストセッションを保存するアクションを追加

将来的にこの機能が利用できるようになることを願っています。投票したり、ユースケースについてコメントを投稿したりすると役立つかもしれません。

于 2014-03-25T10:34:08.697 に答える
2

これにはカテゴリを使用する必要があります。NUnitを使用している場合は、CategoryAttributeを使用して、次のようにテストまたはテストフィクスチャにカテゴリをマークできます。

[Category("Failing")] public void MyTestProc() ...

1つのテストに複数のカテゴリを指定できます(属性を数回使用するだけです)。その後、に移動しReSharper | Unit Tests | Unit Testsて選択しますGroup by -> Categories(またはそのようなもの、正確に覚えていない)。カテゴリを選択し、Run selected testsツールバーからボタンを押します。

于 2012-08-26T09:54:25.830 に答える
1

簡単に言えば、その通りです。resharperテストセッションはユーザーごとに保存されることを目的としており、.sln.DotSettings.userファイルに保存され、.userファイルはチェックインされないようになっています。

ほとんどのシナリオでは、チーム全体で共有することが理にかなっているとは言えません。特定のクラスをTDDしている場合、チームの他のメンバーはテストを見る必要がありません。コードの同じ領域であり、代わりに独自のセッションがあります。ノックオン効果は、共有設定ファイルのその部分での多くのチャーン(および競合のリスクが高い)にもなります。

チーム共有設定ファイルに対して[保存先]を選択すると、共有設定ファイルに対して「単体テストセッションの保存と復元」の設定のみが行われます。セッション自体は保存されません。

私はそれについてあまり長い間考えていませんでしたが、ロックされたセッションをチームの共有設定に保存するReShaprerプラグインを作成できると思います。UnitTestSessionManagerは、セッションが作成または閉じられたときにイベントを発生させ、IUnitTestSessionインターフェイスはGetPersistentInfoおよびRestorePersistentInfoを公開します。これにより、データを取得して保存およびロードできます。その場合、適切なタイミングでデータを設定ファイルに永続化する場合になります。

ただし、このファイルで競合が発生しないことを保証することはできません-要素がシリアル化されたときの順序がわかりません。データは非常に高密度の形式にシリアル化されているため、セッションが変更されます痛みを伴う可能性があります。

おそらく別の働き方が良いでしょうか?1つのセッションですべてのテストを実行するだけでは得られないことを示す2つのセッションは何ですか?ReSharperを使用すると、テストに合格したか失敗したかを表示できます。チームがテストを合格または不合格にグループ化できるようにすることは本当に役立ちますか?おそらく、後で修正する必要があるテストにカテゴリを追加しますか?それらが今修正するのに十分重要でない場合、それらを無視するようにマークしますか?今すぐ修正しますか?

于 2012-08-24T09:41:13.060 に答える