我正在尝试根据包含XML文件的文件夹的结构动态生成测试。 (测试使用XML文件来驱动Selenium RC)
所以说例如我有3个文件夹,它们也包含子文件夹(每个文件夹都包含我用来驱动selenium RC的Data.xml文件)
TestData
TestFixtureOne
TestCaseOne
Data.xml
TestCaseTwo
Data.xml
TestCaseThree
Data.xml
TestFixtureTwo
TestCaseOne
Data.xml
TestCaseTwo
Data.xml
TestFixtureThree
TestCaseOne
Data.xml
TestCaseTwo
Data.xml
TestCaseThree
Data.xml
TestCaseFour
Data.xml
TestCaseFive
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文件夹(见下文),这不是我所追求的。我试图使其灵活,以便我可以根据需要添加更多测试(更多TestFixtures和TestCases)。
[NUnit测试树] TestSource TestFixtureOne TestFixtureTwo TestFixtureThree
我最近一直在无情地搜索并遇到了这些对我很有帮助的线索,但现在我被卡住了!
used in multiple [TestFixture]s (另一个我得到上述代码的帖子)
非常感谢任何帮助,
此致
答案 0 :(得分:1)
我不确定您是否需要使用GetFiles()方法来获取XML文件,但是为了递归获取目录,您可以使用
return Directory.GetDirectories(testDirectory, "*", SearchOption.AllDirectories);
有关此功能的更多信息here。