2015-04-20 4 views
0

В настоящее время я пишу какую-нибудь программу для загрузки информации о тестовых случаях с сервера TFS. Наш пользователь требует, чтобы тестовые случаи загружались в желаемой последовательности.Как переупорядочить ITestCaseCollection с помощью C#

Текущая программа использует этот кусок кода для загрузки всей информации о тестовом случае в сборку тестовых примеров из выбранного набора тестов. Тем не менее, порядок по умолчанию - это серверная система TFS Test Scenario/suit ID =>, а затем Test Case ID. Наш пользователь хотел бы отсортировать его на основе тестового сценария/имени костюма => Имя тестового примера.

private ITestCaseCollection testCases; 

private void Get_TestCases(ITestSuiteBase testSuite) {

 this.testCases = testSuite.AllTestCases; 
     if (NoSubSuite.Checked == true) 
     { 
      this.testCases.Clear(); 
      foreach (ITestSuiteEntry tse in testSuite.TestCases) 
      { 
       if (tse.EntryType == TestSuiteEntryType.TestCase) 
       { 
        if (tse.TestCase != null) 
        { 
         testCases.Add(tse.TestCase); 

        } 
       } 
      } 


     } 
    } 

Как добиться сортировки по имени? Я нашел, что существует метод расширения для ITestCaseCollection, который называется orderby. Но я понятия не имею, как его использовать, я не могу найти соответствующую документацию на MSDN. Может ли кто-нибудь помочь? testCases.OrderBy extension method

+0

Плохая практика для тестовых случаев требовать последовательности! Они должны быть независимыми ... –

+0

Мой пользователь хотел бы, чтобы я показывал информацию о тестовых случаях в определенной последовательности по мере необходимости .. Это только для отображения информации :) –

ответ

1

Вы можете получить List<TestCase> с заказом вы хотите использовать OrderBy что-то вроде этого:

var list = testCases.OrderBy(t => t.ScenarioName) /* or whatever properties */ 
        .ThenBy(t => t.Name) 
        .ToList(); 

Я не знаю, как построить ITestCaseCollection от него, хотя вы не можете сделать это ,

+0

Спасибо! Оно работает! Я сортирую список и очищаю свой оригинальный ITestCaseCollection, а затем добавляю его обратно. 'var templist = testCases.OrderBy (t => t.TestSuiteEntry.Title) .ThenByDescending (t => t.CustomFields [" XXX.YYY.TestCaseID "]. Value.ToString()) .ToList(); this.testCases.Clear(); foreach (ITestCase iTC in templist) { testCases.Add (iTC); } ' –

Смежные вопросы