Reading test data for NUNIT from a file

  • Thread starter Thread starter tchaiket
  • Start date Start date
T

tchaiket

Hey all,

I'm using NUNIT to test our classes. However, I don't want to hard
code test data into the NUNIT classes. For example, to test adding a
new Client, I don't want to hard code the Client Name, phone number,
email, etc. I want to the NUNIT to read this data from a file. This
way I can change the data in a file easily and test various types of
test data.

I think this can be done using the CONFIG file that NUNIT reads. Is
there any other way? Does NUNIT have other method of doing this?
Thanks.
TC
 
What about using the standard app.config file to store that information?
 
I'm using NUNIT to test our classes. However, I don't want to hard
code test data into the NUNIT classes. For example, to test adding a
new Client, I don't want to hard code the Client Name, phone number,
email, etc. I want to the NUNIT to read this data from a file. This
way I can change the data in a file easily and test various types of
test data.

I think this can be done using the CONFIG file that NUNIT reads. Is
there any other way? Does NUNIT have other method of doing this?

In both Java and .NET, I prefer to bundle test data as resource files -
in .NET, this means they are compiled into the test assembly. You can
then use Assembly.GetManifestResourceSource to load the file.
 
Jon,
Do you have a NUNIT code example of how you would read the config file
or the resource file?
Thanks.
 
Do you have a NUNIT code example of how you would read the config file
or the resource file?

I'm afraid I don't have time to come up with an example at the moment -
but have you tried it? Just call Assembly.GetManifestResourceStream and
use the returned stream as you would any other stream to load data
from.

If you're having trouble, you could post a test which you'd expect to
work but doesn't.
 
Thus wrote Jon Skeet [C# MVP],
I'm afraid I don't have time to come up with an example at the moment
- but have you tried it? Just call Assembly.GetManifestResourceStream
and use the returned stream as you would any other stream to load data
from.

May I help out :-)

I use this helper class to create and remove temporary files for unit tests.
One can use SetUp() to create a temporary file and TearDown() to remove it.

public static class TestUtility {
public static FileInfo CreateTestFile(string resourceName) {
FileInfo file = new FileInfo(Path.GetTempFileName());

Assembly assembly = Assembly.GetCallingAssembly();
Stream istream = assembly.GetManifestResourceStream(resourceName);
using(FileStream ostream = file.Open(FileMode.Create, FileAccess.Write))
{
byte[] buffer = new byte[0x2000];
int bytes;
while((bytes = istream.Read(buffer, 0, buffer.Length)) > 0) {
ostream.Write(buffer, 0, bytes);
}
}

Console.WriteLine(">> Created test file {0}", file.FullName);
return file;
}

public static void DeleteTestFile(FileInfo file) {
if(file != null) {
string fullName = file.FullName;
try {
file.Delete();
Console.WriteLine(">> Deleted test file {0}", fullName);
}
catch(IOException ex) {
Console.WriteLine(">> Cannot delete \"{0}\": {1}", fullName,
ex);
}
}
}
}

Cheers,
 
Hey all,

I'm using NUNIT to test our classes. However, I don't want to hard
code test data into the NUNIT classes. For example, to test adding a
new Client, I don't want to hard code the Client Name, phone number,
email, etc. I want to the NUNIT to read this data from a file. This
way I can change the data in a file easily and test various types of
test data.

I think this can be done using the CONFIG file that NUNIT reads. Is
there any other way? Does NUNIT have other method of doing this?
Thanks.
TC

Can u tell me that How do u read test data from any file? Pls tell what is exact setting need to change in config file or some other code is there.
 
Back
Top