Read More on Telerik Blogs
September 14, 2012 Web
Get A Free Trial

I got an interesting request from a customer today. It seems the app that the user intends to test has a user.config file associated with it. And here's what the user is looking to do in his own words:

How do I create a test which modifies the user.config file before opening the application?

Hopefully it will be interesting for you to see how I put this together. I did a bit of research and it went like this:

1) What's a user.config file?

I figured I probably have one of these on my hard-drive. I did a Windows search and I located a single user.config file - it was a XML file. I copied it into c:\test\user.config. This was to be my guinea pig - so far so good.

2) We need an XML API

So user.config is a XML file. It's still possible to edit it as a regular txt file (using the System.IO API) but that seems a bit amateurish. I wanted to use a XML API. System.XML which is a .Net assembly was my tool of choice

3) Putting together the code

I spent a bit of time researching this. Mostly I looked at MSDN. Here are a few of the articles I checked out:

http://msdn.microsoft.com/en-us/library/system.xml.aspx

http://msdn.microsoft.com/en-us/library/ms162365.aspx

Anyway, here's the code that will take the user.config file from  c:\test\user.config and add a comment node to it:

XmlDocument config = new System.Xml.XmlDocument(); \\Create new document
config.Load("C:\\test\\user.config"); \\Load the existing content 

XmlNode newElem = config.CreateNode(XmlNodeType.Comment,config.Name,config.NamespaceURI); \\Create a new node to add to the document
newElem.InnerText = "this is my node"; \\Add the text content of the new node

config.AppendChild(newElem);  \\Put newly created node into the document
config.Save(XmlWriter.Create("C:\\Intel\\user.config")); \\Overwrite the existing xml file with the new document (which is the old document plus a node)

It's C# code but you can convert it to VB if you need to by using our coded convertor. I put this code in a coded step.

4) Adding the necessary references

In order to make this code works you'll need to add an Assembly reference to System.XML. On my machine I located the file in the following location:

C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.XML.dll

5) Need this to execute before/after your test?

No problem! You can make that work as seen here.

About the author

Stoil Stoychev

has been helping customers solve their complex testing challenges leveraging his in-depth knowledge of Telerik Test Studio. He has traveled the globe fine-tuning his technical expertise and helping our valued clients succeed. In his spare time he enjoys motorcycles, live music and various sports.