如何使用 C# 重新排序 ITestCaseCollection
How to reorder ITestCaseCollection using C#
我目前正在编写一些程序来从 TFS 服务器下载测试用例信息。我们的用户要求按照他们想要的顺序下载测试用例。
当前程序正在使用这段代码从选定的测试套件中下载测试用例集合中的所有测试用例信息。但是,默认顺序是按 TFS 服务器系统测试 Scenario/suit ID => 然后是测试用例 ID。我们的用户希望根据测试 Scenario/suit 名称 => 测试用例名称对其进行排序。
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上也找不到相关文档。谁能帮忙?
您可以使用 OrderBy
这样的方式获得您想要的订单的 List<TestCase>
:
var list = testCases.OrderBy(t => t.ScenarioName) /* or whatever properties */
.ThenBy(t => t.Name)
.ToList();
我不知道如何从中构建 ITestCaseCollection
,但您可能不需要这样做。
我目前正在编写一些程序来从 TFS 服务器下载测试用例信息。我们的用户要求按照他们想要的顺序下载测试用例。
当前程序正在使用这段代码从选定的测试套件中下载测试用例集合中的所有测试用例信息。但是,默认顺序是按 TFS 服务器系统测试 Scenario/suit ID => 然后是测试用例 ID。我们的用户希望根据测试 Scenario/suit 名称 => 测试用例名称对其进行排序。
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上也找不到相关文档。谁能帮忙?
您可以使用 OrderBy
这样的方式获得您想要的订单的 List<TestCase>
:
var list = testCases.OrderBy(t => t.ScenarioName) /* or whatever properties */
.ThenBy(t => t.Name)
.ToList();
我不知道如何从中构建 ITestCaseCollection
,但您可能不需要这样做。