I had a recorded scenario that when running back, one resource was giving 404 error, and because of that the test was failing
this resource was not important, it was just a css file, I looked on how to exclude such non-important resources from the test, I found some useful information here http://blogs.msdn.com/b/densto/archive/2007/06/27/webtestrequest-dependentrequests-collection.aspx
so first I converted my test to web coded test, then I looked for the request that was causing the problem, then I added this line before the yeld command for the request
request4.PostRequest += new EventHandler<PostRequestEventArgs>(request4_PostRequest);
Then added the request4_PostRequest implementation at the end
void request4_PostRequest(object sender, PostRequestEventArgs e)    
{     
    List<WebTestRequest> remove = new List<WebTestRequest>();     
    foreach (WebTestRequest dependent in e.Request.DependentRequests)     
    {     
        if (dependent.Url.EndsWith("template.css"))     
        {     
            remove.Add(dependent);     
        }     
    }
    foreach (WebTestRequest dependent in remove)    
    {     
        e.Request.DependentRequests.Remove(dependent);     
    }     
}
Doing the above, I am able to run the test and getting pass as a final result
Another easier way I found later from Ed Glas post http://blogs.msdn.com/b/edglas/archive/2008/08/06/masking-a-404-error-in-a-dependent-request.aspx
This way can be done on the recorded scenario directly without converting to coded test
No comments:
Post a Comment