C# 使用文件夹结构和XML文件在NUnit中动态生成测试装置和测试用例

C# 使用文件夹结构和XML文件在NUnit中动态生成测试装置和测试用例,c#,.net-3.5,nunit,integration-testing,C#,.net 3.5,Nunit,Integration Testing,我试图根据包含XML文件的文件夹结构动态生成测试。(测试使用XML文件驱动Selenium RC) 比如说,我有3个文件夹,其中也包含子文件夹(每个文件夹都包含我用来驱动selenium RC的Data.xml文件) 我现在的代码是这样的 using System; using System.Text; using System.Threading; using NUnit.Framework; using System.Collections.Generic; using System.Col

我试图根据包含XML文件的文件夹结构动态生成测试。(测试使用XML文件驱动Selenium RC)

比如说,我有3个文件夹,其中也包含子文件夹(每个文件夹都包含我用来驱动selenium RC的Data.xml文件)

我现在的代码是这样的

using System;
using System.Text;
using System.Threading;
using NUnit.Framework;
using System.Collections.Generic;
using System.Collections;
using System.Configuration;
namespace NUnitIntegration
{
    [TestFixture]
    class SeleniumTest
    {
        private static string testDirectory;

        public SeleniumTest()
        {
            testDirectory = ConfigurationManager.AppSettings["TestDirectory"]; // Let’s assume this value is “C:\TestData\”

        }

        [SetUp]
        public void init()
        {
            // Nothing needed as of yet
        }

        [Test, TestCaseSource("GetTestCases")]
        public void TestSource(string test)
        {
            System.Console.WriteLine("Successfully executed test for: " + test);
        }

        [TearDown]
        public void dispose()
        {
            // Nothing needed as of yet
        }

        private static string[] GetTestCases()
        {
            return getTests();
        }

        private static string[] getTests()
        {
            return Directory.GetDirectories(testDirectory);
        }
    }
}
但这只会让我返回TestFixtureOne、TestFixtureTwo和TestFixtureThree文件夹(见下文),这不是我想要的。我试图使它变得灵活,以便在需要时添加更多的测试(更多的测试装置和测试用例)

[NUnit测试树] 测试源 测试固定器 测试固定器2 测试固定器三

我最近一直在不懈地搜索,发现这些线索对我帮助很大,但现在我被卡住了

(还有另一个我从中获得上述代码的线程)

任何帮助都将不胜感激


关于

我不确定是否需要使用GetFiles()方法来获取XML文件,但是要递归地获取目录,可以使用

return Directory.GetDirectories(testDirectory, "*", SearchOption.AllDirectories);
有关此功能的详细信息

return Directory.GetDirectories(testDirectory, "*", SearchOption.AllDirectories);