2016-10-30 7 views
0

チームプロジェクトの作業項目リンク関係の詳細を含むVSTSチームプロジェクトに関するレポートを作成したかったのです。例:Epics →特集→ UserStories。 Epics &の機能と、機能& UserStoriesの間に親子関係があるため、これらの作業項目とその関係のすべての詳細を含むレポート(.csvまたは.xls)を作成したいと考えていました。作業項目Visual Studio Team Services(VSTS)でのレポートのためのクエリ/スクリプトのリンク

誰かが私にこれを達成するための最良の簡単な方法を教えてもらえますか?

答えて

0

私はあなたがTFSアドイン(VSまたはチームエクスプローラに含まれています)を使ってプロジェクトを介して確認することをお勧めします。 =>チームプロジェクトを選択し

  • クリックして取得作業アイテム=>そのクエリを選択=>検索=>選択し

    1. クエリ(作業項目のツリー) enter image description here
    2. プロジェクトを開く
    3. クリックしてチームを作成します。すべて=> OK enter image description here

    プロジェクトで結果を確認できた後、あなたはまた、対応するタイトルをクリックすると、親アイテムを折りたたむことができます。

    ExcelアドインでTFS APIを使用することでプログラム的に実現できます。

    1. document level excel add-in project
    2. Query.RunLinkQuery方法を使用してMicrosoft Team Foundation Server Extended Client package
    3. 実行クエリをインストールを作成します。
    4. これらのテストケース
    5. チェックテストの結果は、あなたの細部の要件ごとに秀でるために、テスト結果
    6. セーブデータの関連する作業項目を取得要件のテストスイートにテストケースを取得します。

    シンプルコード:情報についてstarain..Thanks @

    var credentials = new NetworkCredential("[user name]", "[password]"); 
          TfsTeamProjectCollection tfsCollection = new TfsTeamProjectCollection(new Uri("https://XX.visualstudio.com")); 
          ITestManagementService tms = tfsCollection.GetService<ITestManagementService>(); 
          ITestManagementTeamProject teamProject = tms.GetTeamProject("[team project name]"); 
          WorkItemStore workitemstore = tfsCollection.GetService<WorkItemStore>(); 
          QueryHierarchy queryRoot = workitemstore.Projects["[team project name]"].QueryHierarchy; 
          QueryFolder queryFolder = queryRoot["Shared Queries"] as QueryFolder; 
          QueryDefinition qd = queryFolder["[query name]"] as QueryDefinition; 
          Dictionary<string, string> variables = new Dictionary<string, string>(); 
          variables.Add("project", "[team project name]"); 
          Query query = new Query(workitemstore, qd.QueryText, variables); 
    
          var results = query.RunLinkQuery(); 
          foreach(var lr in results) 
          { 
           //check relationship according to sourceId, TargetId and LinkTypeId (2: child) 
           int parentId = lr.SourceId; 
           int currentId = lr.TargetId; 
          } 
    
          foreach (ITestPlan p in teamProject.TestPlans.Query("Select * From TestPlan")) 
          { 
           Console.WriteLine("Plan - {0} : {1}", p.Id, p.Name); 
    
           foreach (var suite in p.RootSuite.SubSuites) 
           { 
            IRequirementTestSuite requirementSuite = suite as IRequirementTestSuite; 
            if (requirementSuite != null) 
            { 
             var requirementId = requirementSuite.RequirementId; 
             //check requirementId with user story Id 
             foreach(var tc in requirementSuite.TestCases) 
             { 
              var lastResult = teamProject.TestResults.ByTestId(tc.Id).OrderByDescending(tr => tr.DateStarted).FirstOrDefault(); 
              if(lastResult.Outcome== Microsoft.TeamFoundation.TestManagement.Client.TestOutcome.Failed) 
              { 
               int[] ids= lastResult.QueryAssociatedWorkItems(); 
               foreach(int id in ids) 
               { 
                var wit = workitemstore.GetWorkItem(id); 
               } 
    
              } 
    
             } 
    
    
            } 
           } 
          } 
    
  • +0

    。何らかのスクリプト/プログラミングツールを使用して同じことを達成できますか? TestSuites(UserStoriesを使用して作成されたRequirementベースのテストスイート)を取得して、それらのTestSuitesにリンクされたTestCasesを取得するクエリをさらに拡張したいので、私はいくつかのスクリプトを好む。例:UserStory→TestSuite→テストケース。私の最終的なレポートの要件は次のとおりです:Epic→Feature→UserStory→TestSuite→TestCases→TestResult→Bug(テスト結果が「Fail」の場合)この種のデータを1つのレポートにまとめることは可能ですか? – Srini33

    +0

    @ Srini33はい、プログラムでTFS APIを使用して達成できます。私は自分の答えを更新しました。 –

    +0

    @ starain..情報に感謝します。可能であれば、TFS APIプログラミングを学ぶための最善のアプローチを私に提案してください。私はこれに新しいです。また、上記のプログラムを理解するには時間がかかります。私は何か明確化が必要かどうかを知らせます。 – Srini33

    関連する問題