4

Visual Studio (2010) または ReSharper を入手して、メソッドのカスタム属性を使用して異なる色を使用してメソッド呼び出しをレンダリングすることは可能ですか? 例えば:

[Arrange]
private void ArrangeSomeVariablesAndSetup()
{
    ...
}

[Act]
private void ActOnThoseVariablesOrDoSomethingInteresting()
{
    ...
}

[Assert]
private void AssertThatSomethingHappeningThatWasExpecting()
{
    ...
}

次に、これらのメソッドを呼び出すときに、Visual Studio は属性に基づいた色でそれらをレンダリングする必要があります。

[Test]
public void MyTest()
{
    ArrangeSomeVariablesAndSetup(); <-- Renders in green
    ActOnThoseVariablesOrDoSomethingInteresting(); <-- Renders in blue
    AssertThatSomethingHappeningThatWasExpecting(); <-- Renders in yellow
}

(属性名と色は純粋に例として使用されています。また、これを必ずしも単体テストに限定しているわけではありません)

4

1 に答える 1

1

テスト メソッドを強調表示できるものを探している場合 (私のように)、拡張機能のStay Frosty Method Block Highlighterを作成しました。これには、テスト メソッドのメソッド ブロックの強調表示ルールが含まれており、構成可能なメソッドに基づいてそれらの周りに半透明のボックスを配置できます。属性。

既定では、NUnit または MSTest 単体テスト メソッドに通常表示される属性が含まれていますが、任意の属性を使用できます。個人設定でベンチマーク クラスを強調表示するように設定しました。唯一の欠点は、「属性付きメソッド」がすべて同じ (構成可能な) 色になることです。

メソッドのプロパティに基づいて無制限の数のルール/色のペアを定義できるように、休暇中に拡張したいと考えています。データ部分はすべて完了しています。レンダリングに関するいくつかのビットをリファクタリングする必要があるだけです。

あなたは特に Visual Studio 2010 について尋ねました (ただし、これは 2012 年にさかのぼるので、当時はそれが最も可能性の高いバージョンでした)。拡張機能は 2013 と 2015 をサポートしますが、解析を Roslyn に依存しているため、属性ベースのメソッド ブロックは Visual Studio 2015 でのみサポートされます。2013 バージョンにバックポートしましたが、そのパーサーのパフォーマンスは受け入れられませんでした。週末のプロジェクトであるため、機能を以前のバージョンで使用できないように整理する時間がありませんでした。

于 2015-12-13T00:17:06.990 に答える