Using Nunit, I want to be able to write a test fixture that will read all the filenames in a particular directory and create a test for each file.
I could quite easily w
I know this is a little obscure but I have used a script in the past to generate code for me which I can then execute as individual test cases.
If you are not going to be adding files to that directory over time and have a set of filenames to pass in as an input to a generic test, try using the RowTest NUnit extension (part of the std distrib post v2.4.7) - You'd be able to see each test case - input combination individually in the GUI grouped under a single node.
If you are going to be adding files to that directory, I'd write a single NUnit TestCase that loops over a list of files obtained at runtime and calls the generic test method with each filepath. Use a collecting parameter to collect failing test file names - at the end you assert. You wouldn't be able to see each test case individually but you'd have readable simple test code.
Assert.AreEqual(listOfFailedFiles.Length, 0, PrettyPrint(listOfFailedFiles))
I've found a way that fits my purposes
Have one test case, and mark it with the TestCaseSource attribute like so
[Test, TestCaseSource("GetTestCases")]
public void TestFile(string filename)
{
//do test
}
Then write the GetTestCases to read all the file names in the directory
private static string[] GetTestCases()
{
return GetAllFilesInCurrentDirectory();
}
Then when I start NUnit I get a list of the tests to be run (listed under TestFile).
Try the data driven test cases NUnit extension.