2013-04-09 5 views
1

xml 파일에서 TFS2010으로 테스트 케이스를 가져오고 예외가 발생합니다. 그러나 틀린 것에 대한 정보는 없습니다.TFS 2010으로 가져 오는 동안 테스트 케이스에서 잘못된 것을 찾는 방법

"Work item 0 is invalid and cannot be saved. Exception: 'TF237124: Work Item is not ready to save'." 

xml에서 가져온 데이터의 잘못된 점을 어떻게 확인할 수 있습니까?

using System.Text.RegularExpressions; 
    using System.Xml; 
    using Microsoft.TeamFoundation.Server; 
    using Microsoft.TeamFoundation.WorkItemTracking.Client; 
    using System; 
    using System.Linq; 

    internal class Program 
    { 
    // Input File 
    private static TestLink testLink = new TestLink("E:\\dev\\TestLinkToTfs\\testsuites.xml"); 

    // Target TFS server 
    private static Tfs tfs = new Tfs("http://host:8080/tfs/Test", "Test"); 

    private static void Main(string[] args) 
    { 
     var testLinkTestCase = testLink.GetTestCases().Take(1).ToList(); 
     var steps = testLinkTestCase.Descendants("step"); 
     var testCase = tfs.Project.TestCases.Create(tfs.Project.WitProject.WorkItemTypes["Test Case"]); 
     testCase.Title = testLinkTestCase.Attribute("name").Value; 

     var summary = testLinkTestCase.Descendants("summary").ToList(); 
     var issueId = TestLink.GetLinkedIssueId(summary); 

     var regEx = new Regex(@"[^a-zA-Z0-9 -]"); 
     var grandParentName = regEx.Replace(testLinkTestCase.Parent.Parent.Attribute("name").Value, string.Empty); 
     var parentName = regEx.Replace(testLinkTestCase.Parent.Attribute("name").Value, string.Empty); 

     var area = string.Format(@"Test\Test Cases\{0}\{1}", grandParentName, parentName); 

     testCase.CustomFields["Assigned To"].Value = string.Empty; 
     testCase.Area = area; 

     Tfs.AddSteps(steps, testCase); 

     testCase.Save(); 
     } 

     Console.ReadKey(); 
    } 
    } 
} 

답변

1

작업 항목 ID가 0이면이 항목이 동적으로 만들어지고 일부 필드 값이 유효하지 않음을 의미합니다. 작업 항목을 저장하고 코드 디버깅을 시도하기 전에

workitem.validate(); 

을 시도해야합니다. 이것은 잘못된 데이터가있는 정확한 필드를 알려줍니다. 당신이 이것을 위해 사용하는 코드와 xml을 게시하면 더 유용 할 수 있습니다.

+0

내 코드를 공유 할 수는 없지만 디버그 프로세스를 확인하십시오. http://screencast.com/t/std7wbETLYt 무엇을 찾으시겠습니까? – algot

+1

작업 항목을 파 내려고 너무 많은 사진이 필요합니다.하지만 해결책이 있습니다. 조사 식 창에 익숙한 지 모르겠지만 최대한 간단하게하려고 노력합니다. 다음은 Watch http://postimg.org/image/srt2pl0gn/을 사용하는 이미지입니다. 개수가! = 0이면 작업 항목에 잘못된 값이있는 필드가 있음을 나타냅니다. 하나의 개체 (내 예제 ​​0)를 확장하면 잘못된 데이터가있는 필드 이름을 볼 수 있습니다. 이 필드를 사용하여 적절한 값을 찾는 가장 쉬운 방법은 Visual Studio에서 새로운 테스트 사례를 만든 다음 사용 가능한 값을 확인하는 것입니다. – spirosvp

+0

Validate()를 잘못 사용했다고 가정합니다. testCase.WorkItem.Validate(); 컨텍스트에서 '작업 항목'은 무엇입니까? – algot