« Forcing NAnt to build and run with a spe... | Main | Be aware of your DLLs and who's loading ... »

Great stuff on using NUnit in conjunction with external files from Patrick Cauldwell.  It's one of those "Doh!" things that I've always MEANT to do, but somehow ended up using Pre- and Post-Build events instead.  I MUCH prefer Patrick's method.  It's much cleaner and it allows the once-external file to LIVE with the test.

        [SetUp] public void SetUp()
        {
            Assembly a = Assembly.GetExecutingAssembly();
            using (Stream s = a.GetManifestResourceStream("MyNameSpace.something.txt"))
            {
                using (StreamReader sr = new StreamReader(s))
                {
                    using (StreamWriter sw = File.CreateText(webConfigPath))
                    {
                        sw.Write(sr.ReadToEnd());
                        sw.Flush();
                    }
                }
            }
        }

        [TearDown] public void TearDown()
        {
            if(File.Exists(webConfigPath))
            {
                File.Delete(webConfigPath);
            }
        }

Tracked by:
"External File Dependency in NUnit" (Tim Rayburn's Blog) [Trackback]


Wednesday, June 23, 2004 8:53:38 AM (Pacific Standard Time, UTC-08:00)
Great idea. The method for creating the file should be somewhere else so we can simplify the client code. A good place is inside a TestServices class...

[SetUp] public void SetUp()
{
TestServices.CreateTextFile(webConfigPath, "MyNameSpace.something.txt");
}

[TearDown] public void TearDown()
{
TestServices.DeleteFile(webConfigPath);
}

You can also place these methods inside an ancestor of this Test class (assuming your test classes all descend from a common ancestor).
Wednesday, June 23, 2004 5:08:36 PM (Pacific Standard Time, UTC-08:00)
Actually, I do this sort of thing a lot, but have two utils that make it much easier - the source for both is on my coolcode blog (http://coolcode.darrenoakey.info)

TemporaryDirectory: the class gives you a temp dir in which you can work to your hearts content - as soon as the variable gets garbage collected, the temp dir gets cleaned up.

Resources: A much cleaner way of accessing resources..

Here's an example of how to use it - the actual test of the WriteResourceToFile function:

///
/// This tests writing a resource as a file
/// - create a temporary work dir
/// - write the firstSampleResource to a file
/// - read the file back, and check the values
[Test]
public void TestWriteResourcesAsFile()
{
// - create a temporary work dir
TemporaryDirectory newDir = new TemporaryDirectory();

// - write the firstSampleResource to a file
Resources.WriteResourceToFile( newDir, "firstSampleResource.txt");

// - read the file back, and check the values
Assertion.AssertEquals("read the file back, and check the values",
"This is the first sample resource",
CommonFunctions.ReadTextFromFile( newDir.FullPath( "firstSampleResource.txt")));
}



Comments are closed.

Contact

Sponsors

Hosting By

Hot Topics

Tags

Calendar

<November 2009>
SunMonTueWedThuFriSat
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

Archives

November, 2009 (5)
October, 2009 (19)
September, 2009 (11)
August, 2009 (12)
July, 2009 (21)
June, 2009 (26)
May, 2009 (16)
April, 2009 (13)
March, 2009 (17)
February, 2009 (17)
January, 2009 (18)
December, 2008 (32)
November, 2008 (17)
October, 2008 (22)
September, 2008 (16)
August, 2008 (14)
July, 2008 (25)
June, 2008 (19)
May, 2008 (17)
April, 2008 (17)
March, 2008 (26)
February, 2008 (21)
January, 2008 (28)
December, 2007 (19)
November, 2007 (17)
October, 2007 (31)
September, 2007 (39)
August, 2007 (37)
July, 2007 (43)
June, 2007 (37)
May, 2007 (32)
April, 2007 (38)
March, 2007 (29)
February, 2007 (46)
January, 2007 (31)
December, 2006 (27)
November, 2006 (31)
October, 2006 (32)
September, 2006 (39)
August, 2006 (34)
July, 2006 (40)
June, 2006 (18)
May, 2006 (31)
April, 2006 (34)
March, 2006 (30)
February, 2006 (38)
January, 2006 (44)
December, 2005 (19)
November, 2005 (34)
October, 2005 (24)
September, 2005 (37)
August, 2005 (20)
July, 2005 (24)
June, 2005 (33)
May, 2005 (16)
April, 2005 (22)
March, 2005 (34)
February, 2005 (15)
January, 2005 (37)
December, 2004 (28)
November, 2004 (30)
October, 2004 (34)
September, 2004 (22)
August, 2004 (34)
July, 2004 (18)
June, 2004 (64)
May, 2004 (49)
April, 2004 (21)
March, 2004 (29)
February, 2004 (29)
January, 2004 (36)
December, 2003 (25)
November, 2003 (24)
October, 2003 (59)
September, 2003 (42)
August, 2003 (24)
July, 2003 (44)
June, 2003 (29)
May, 2003 (21)
April, 2003 (30)
March, 2003 (27)
February, 2003 (47)
January, 2003 (50)
December, 2002 (31)
November, 2002 (38)
October, 2002 (44)
September, 2002 (15)
May, 2002 (2)
April, 2002 (4)

Google Ads