12

単体テストクラスのテストメソッドは、クラスファイルに表示されている順序で実行されるという印象を受けました。どうやらこれは真実ではありません。また、純粋にアルファベット順に基づいているようにも見えません。MSTESTはどのように実行順序を決定しますか?

編集:少し掘り下げた後、答えを突き止めることができました。下記参照。

4

7 に答える 7

12

答えをたどることができました。

Microsoft の従業員 Guillermo Serrato によると:

MSTest はすべてのテストを同期的に実行します。順序は非決定的です。

于 2008-11-14T17:16:54.893 に答える
2

私の経験では (私は少し苦労しました)、MStest プロジェクトのメソッド実行順序の変更順序について多くのことを考えてみました。手順を説明しようと思います。

  1. デフォルトの .testrunco​​nfig および .vsmdi ファイルを確実に削除する必要があります。これらのファイルは、テスト プロジェクトの作成時に Visual Studio によって作成されます。

  2. Visual Studio インスタンスを閉じて、もう一度開きます。

  3. Visual Studio が開いたら、Test List Edior を開いて、[Lists of tests] セクションの下に独自のリストを作成する必要があります。新しいテスト リストを作成した後は、空になっているはずです。

  4. 読み込まれたすべてのテスト セクションに移動し、任意のテストを選択した順序で新しく作成されたテスト セクションにドラッグします。

次に、最後に作成したテスト セクションがチェックされていることを確認し、実行テストを押して、定義した順序で実行されていることを確認します。

これがバグなのか、そのようなものなのかはわかりませんが、魔法のように機能しています。この方法を同僚と数回テストしました。

良いロック

于 2009-11-05T14:46:31.383 に答える
2

問題: 私がやりたいことは、注文したテストに含まれている Web テストのみを実行することです。そのためだけに順序付きテストを使用しているので、Web テストを実行する必要がある特定の順序で実行できます。多数の Web テストがありますが、順序付きテストにはそれらの Web テストのサブセットが含まれています。 、実行したいです。解決策: 順序付きテストは、一連のテストを特定の順序で実行するために使用されます。Visual Studio/テスト プロジェクトで Orderer テスト リストを作成します。テスト ビュー ウィンドウ (テスト | Windows | テスト ビュー) から OrderedTest を選択し、そこから実行します (右クリックして [選択を実行] を選択できます)。順序付きテストは、それに含まれるすべての Web テストを自動的に実行します。

テスト結果ウィンドウ (テスト | ウィンドウ | テスト結果) に結果が表示されます。OrderedTest をダブルクリックすると、すべての Web テストの詳細な結果が表示されます。各 Web テストをダブルクリックすると、それぞれの詳細な結果を確認できます。

于 2011-12-08T20:43:11.300 に答える
2

とても簡単です。私はこれを使用しています

C:>mstest /testcontainer:C:\MyTest.dll /resultsfile:C:\MyTestresults.xml

ロジックは、デフォルトで mstest が .trx ファイルを提供するというものです。したがって、[/resultfile:] オプションに対するコマンドでは、.xml 拡張子を付けてファイルの名前を記述します。そこで、/resultsfile:C:\MyTestresults.trx の代わりに /resultsfile:C:\MyTestresults.xml を使用しました。

これは私にとってはうまくいきます。それがあなたのために働くかどうか私に知らせてください。

于 2009-03-17T11:33:05.420 に答える
1

VSでテストを注文する方法はたくさんあります。テストビューを使用し、列と順序を追加します。私はVSMDIファイルを使用しており、これにより、指定された順序でファイルが実行されます。

于 2008-11-14T08:21:13.493 に答える
-1

それらがどの順序で実行されるかは問題ではありません...テストが最初に実行される別のテストに依存している場合、テストに欠陥があります:-)

于 2008-11-13T23:53:52.643 に答える