2016-07-29 5 views
1

Ich habe den folgenden Code, um den Testfall in TFS/MTM zu bestehen. Ich habe erreicht, um den Testfall von außen zu übergeben, aber wenn ich die inneren Schritte des Testfalls überprüfen, sind sie nicht bestanden. Ich schaue, um den Testfall zu führen, indem ich jede Aktion des Testfalls überlasse. jede Hilfe geschätzt.Pass Testfall in TFS mit tfs api

ITestPlan tp = testinsuitesd.Plan; 
// foreach (ITestCase testcase in allTestCases) 
//{ 

ITestRun testRun = testinsuitesd.Plan.CreateTestRun(false); 
ITestPointCollection testPoints = tp.QueryTestPoints("select * from TestPoint where suiteId= "+ testinsuitesd.Id); 
    foreach(ITestPoint testRuns in testPoints) 
    { 
     testRun.AddTestPoint(testRuns, null); 
    } 
    testRun.Save(); 

    ITestCaseResultCollection testCaseResult = testRun.QueryResults();  //code to Pass the test Case 
    foreach (ITestCaseResult testResult in testCaseResult) 
     { 
    ITestIterationResult iterationResult; 
    ITestActionResult actionResults;         
     iterationResult = testResult.CreateIteration(1); 
    //actionResults = testResult.CreateIteration(1); 
      foreach (ITestAction testStep in testResult.GetTestCase().Actions) 
      { 

       ITestActionResult stepResult = iterationResult.CreateStepResult(testStep.Id);              
       //stepResult.ErrorMessage = String.Empty;            
       stepResult.Outcome = TestOutcome.Passed; //you can assign different states here 

       iterationResult.Actions.Add(stepResult); 
     //actionResults.Add(stepResult); 
      // iterationResult.Actions.Add(stepResult); 
     // actionResults. Add(stepResult); 
      } 

      iterationResult.Outcome = TestOutcome.Passed;           
      testResult.Iterations.Add(iterationResult); 
    testResult.Outcome = TestOutcome.Passed; 
    testResult.State = TestResultState.Completed; 
    testResult.Save(); 
     } 
    testCaseResult.Save(false); 
// testCaseResult. 
    testRun.Save(); 
    testRun.Refresh(); 

tp.Save(); 

Antwort

-1

Versuchen mit folgendem Code:

var tfsRun = _testPoint.Plan.CreateTestRun(false); 

tfsRun.DateStarted = DateTime.Now; 
tfsRun.AddTestPoint(_testPoint, _currentIdentity); 
tfsRun.DateCompleted = DateTime.Now; 
tfsRun.Save(); // so results object is created 

var result = tfsRun.QueryResults()[0]; 
result.Owner = _currentIdentity; 
result.RunBy = _currentIdentity; 
result.State = TestResultState.Completed; 
result.DateStarted = DateTime.Now; 
result.Duration = new TimeSpan(0L); 
result.DateCompleted = DateTime.Now.AddMinutes(0.0); 

var iteration = result.CreateIteration(1); 
iteration.DateStarted = DateTime.Now; 
iteration.DateCompleted = DateTime.Now; 
iteration.Duration = new TimeSpan(0L); 
iteration.Comment = "Run from TFS Test Steps Editor by " + _currentIdentity.DisplayName; 

for (int actionIndex = 0; actionIndex < _testEditInfo.TestCase.Actions.Count; actionIndex++) 
{ 
    var testAction = _testEditInfo.TestCase.Actions[actionIndex]; 
    if (testAction is ISharedStepReference) 
     continue; 

    var userStep = _testEditInfo.SimpleSteps[actionIndex]; 

    var stepResult = iteration.CreateStepResult(testAction.Id); 
    stepResult.ErrorMessage = String.Empty; 
    stepResult.Outcome = userStep.Outcome; 

    foreach (var attachmentPath in userStep.AttachmentPaths) 
    { 
     var attachment = stepResult.CreateAttachment(attachmentPath); 
     stepResult.Attachments.Add(attachment); 
    } 

    iteration.Actions.Add(stepResult); 
} 

var overallOutcome = _testEditInfo.SimpleSteps.Any(s => s.Outcome != TestOutcome.Passed) 
    ? TestOutcome.Failed 
    : TestOutcome.Passed; 

iteration.Outcome = overallOutcome; 

result.Iterations.Add(iteration); 

result.Outcome = overallOutcome; 
result.Save(false); 

Darüber hinaus gibt es auch einige Links zu TFS-API, die Ihnen helfen können:

+1

hallo das Objekt über „_testEditInfo“ verwendet der Typ ist? Können Sie bitte lassen Sie mich wissen, was das Problem mit meinem Code. –