「テストスイート」タイプのWorkItemが与えられたTeamFoundation Serverで、そのテストスイートに関連付けられているすべてのテストケースを選択するクエリを作成するにはどうすればよいですか?
残念ながら、テスト計画、スイート、およびケースの間に作成された作業項目のリンクはありません。したがって、これらは作業項目ですが、リンクはありません。これは、デフォルトのクエリが不可能であることを意味します。
回避策は、スイート内でスイートの名前を使用して すべてのテストケースにタグを付ける です。次に、 作業項目タグでフィルタリングするクエリ を使用できます。
さらに進んで、いくつかの WebフックとAzure関数 (または他のホストされたAPI)マジックを使用して、タグの作成を自動化できます。これにより、テストケースの作成(または更新)をリッスンするWebフックを作成できます。他の投稿に記載されているコードの一部を使用することで、テストケースのテストスイートを取得し、REST APIを使用して、テストケースにタグとして追加できます。
TFS 2015以降を使用している場合は、
あなたはこのリンクをチェックすることができます:
tFS 2015以降を使用していない場合:
今のところ、Webインターフェイスを介して通常のTFSクエリを作成する方法はなく、特定のテストスイートに属するテストケースのリストを取得するためのAPI呼び出しやカスタムコーディングもありません。 support-querying-for-all-test-cases-in-a-specifed
または古いツールを試してください: test-plans-test-suites-test-cases-mapping
このインターフェースITestSuiteBase
を使用する必要があるかもしれません。
AllTestCases
Gets the read-only collection of test cases for this suite and all hierarchical children.
TestCases
Gets a read-only collection of test cases.
[〜#〜] msdn [〜#〜] からの詳細情報
コードの例を次に示します。
public static List<TestCase> GetAllTestCaseFromSuite(ITestPlan testPlan, int suiteId, bool includeExecutionStatus = true)
{
List<TestCase> testCases = new List<TestCase>();
testPlan.Refresh();
ITestSuiteBase currentSuite = testPlan.Project.TestSuites.Find(suiteId);
currentSuite.Refresh();
foreach (var currentTestCase in currentSuite.TestCases)
{
TestCase testCaseToAdd = new TestCase(currentTestCase.TestCase, currentSuite, testPlan, includeExecutionStatus);
if (!testCases.Contains(testCaseToAdd))
{
testCases.Add(testCaseToAdd);
}
}
log.InfoFormat("Load all test cases in the suite with Title= \"{0}\" id = \"{1}\"", currentSuite.Title, currentSuite.Id);
return testCases;
}
このブログを参照できる詳細: TFSテストケースC#コードの管理
「子スイートからのテストを表示する」は、必要なオプションです。 スクリーンショットを表示するには、ここをクリックしてください 。クエリは必要ありません。オプションの名前が示すように、スイートのすべての子テストが一覧表示されます。これには、Test ManagerTFSプラグインが必要になる場合があります。