2

テスト ケースで実行された各ステップの結果を含むレポートを作成しようとしていますが、テスト ステップ、期待される結果、ステップの結果、エラー メッセージ、添付ファイルを取得できます。

テスト ステップと期待される結果は、MTM に表示される正しい順序でリストされていますが、ステップの結果とエラー メッセージは、取得したすべてのテスト ケースで再配置されているようです。これは私のコードです。助けてください。

foreach (ITestSuiteEntry testcase in ts.TestCases)
{
    var testResults = testProject.TestResults.ByTestId(testcase.TestCase.Id);
    foreach (ITestCaseResult result in testResults)
    {
        for (int actionIndex = 0; actionIndex < testcase.TestCase.Actions.Count; actionIndex++)
        {
            resultData = new TestResultData();
            var actionStep = testcase.TestCase.Actions[actionIndex] as ITestStep;
            if (actionStep != null)
            {
                resultData.TestCaseName = result.TestCaseTitle;
                resultData.Step = Regex.Replace(actionStep.Title, @"<[^>]+>|&nbsp;", "").Trim();
                resultData.ExpectedResult = Regex.Replace(actionStep.ExpectedResult, @"<[^>]+>|&nbsp;", "").Trim();
            }
            var topIteration = result.Iterations.FirstOrDefault();
            if (topIteration != null && actionIndex < topIteration.Actions.Count)
            {
                var actionResult = topIteration.Actions[actionIndex];
                resultData.StepOutcome = actionResult.Outcome.ToString();
                resultData.Comment = actionResult.ErrorMessage;
                foreach (var attachment in actionResult.Attachments)
                {
                    resultData.AttachmentName = attachment.Name;
                    resultData.AttachmentUri = attachment.Uri.ToString();
                }
            }
            resultDataList.Add(resultData);
        }
    }
}
4

1 に答える 1

2

結果は ActivityId によって保存されるため、各アクションの一致する結果を取得する最も簡単な方法は、次を使用することです。

topIteration.Actions.FirstOrDefault(result => result.ActionId == actionstep.Id)

TestCases から添付ファイルをダウンロードするには、WorkItemStore クラスを使用して作業項目をダウンロードし、次に WebClient を使用して個々のファイルをダウンロードする必要があります。

var workItemStore = teamProjectCollection.GetService<WorkitemStore>();
var workItem = workItemStore.GetWorkItem(testcaseId)

foreach (Attachment attachment in workItem.Attachments)
{
    var client = new WebClient();
    client.DownloadFile(attachment.Uri, attachment.Name);
}
于 2014-12-18T18:45:28.563 に答える