2016-03-17 1 views
0

Я выполняю тесты, управляемые данными, передавая данные, предоставленные в файле с именем «data.csv». Требование таково, что после выполнения тестовых методов он должен показывать результаты выполнения (т. Е. Pass/fail) для каждого тестового метода (или каждой строки из этого входного файла) в этом же файле, то есть «data.csv», обновляя результаты в этот файл.Как написать результаты тестов codedui в файл csv с помощью C#?

ответ

0

В приведенной ниже программе будет добавлен новый столбец (названный как «Результат») в выходной файл.

/* 
* OLD data: 
* Column1,Column2,Column3 
* A,B,C 
*/ 

//total number of records should be same 
List<string> newColumnData = new List<string>() { "Pass" }; // This list //can be the output for all the iterations that you have stored in a list 
List<string> lines = File.ReadAllLines("C://test.csv").ToList(); 
//add new column to the header row 
lines[0] += ",Column 4"; 
int index = 1; 
//add new column value for each row. 
lines.Skip(1).ToList().ForEach(line => 
{ 
    //-1 for header 
    lines[index] += "," + newColumnData[index - 1]; 
    index++; 
}); 
//write the new content 
File.WriteAllLines("C://test.csv", lines); 

/* 
* NEW data: 
* Column1,Column2,Column3,Result 
* A,B,C, Pass 
*/ 
0

Вы можете использовать любой из каталогов, предоставленных из TestContext писать свой файл.

TestContext.TestRunResultsDirectory 
TestContext.TestResultsDirectory 
TestContext.TestRunDirectory 

Но если вы пытаетесь генерировать данные/статистику для тестовых прогонов я бы рекомендовал использовать MTM и систему тестирования, связанную автоматизацию, Она будет отслеживать каждый тест когда прибежал и производит отчетности (круговые диаграммы, например) о том, что положение дел.

0
public controlTypeEntered wpf_Control<controlTypeEntered>(List<wpfControls_PropertyTypes> propertyType, List<String> propertyValue, WpfControl controlWindow) where controlTypeEntered : WpfControl 

    { 
     controlTypeEntered wpfElement = (controlTypeEntered)Activator.CreateInstance(typeof(controlTypeEntered), new object[] { controlWindow }); 
     Hashtable ht = new Hashtable(); 
     for (var i = 0; i < propertyType.Count; i++) 
     { 
      ht.Add(propertyType[i], propertyValue[i]); 
     } 

     for (var i = 0; i < propertyType.Count; i++) 
     { 
      // Identifying the control on basis of its search properties. 
      if (propertyType[i] == wpfControls_PropertyTypes.ClassName) 
      { 
       wpfElement.SearchProperties[WpfControl.PropertyNames.ClassName] = propertyValue[i]; 
      } 
      else if (propertyType[i] == wpfControls_PropertyTypes.ControlType) 
      { 
       wpfElement.SearchProperties[WpfControl.PropertyNames.ControlType] = propertyValue[i]; 
      } 
      else if (propertyType[i] == wpfControls_PropertyTypes.FriendlyName) 
      { 
       wpfElement.SearchProperties[WpfControl.PropertyNames.FriendlyName] = propertyValue[i]; 
      } 
      else if (propertyType[i] == wpfControls_PropertyTypes.Name) 
      { 
       wpfElement.SearchProperties[WpfControl.PropertyNames.Name] = propertyValue[i]; 
      } 
      else if (propertyType[i] == wpfControls_PropertyTypes.TechnologyName) 
      { 
       wpfElement.SearchProperties[WpfControl.PropertyNames.TechnologyName] = propertyValue[i]; 
      } 
     } 
     return (controlTypeEntered)Convert.ChangeType(wpfElement, typeof(controlTypeEntered)); 
    }