« 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

<February 2010>
SunMonTueWedThuFriSat
31123456
78910111213
14151617181920
21222324252627
28123456
78910111213

Archives

February, 2010 (8)
January, 2010 (13)
December, 2009 (13)
November, 2009 (7)
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