在 MS test 和通过控制台应用程序运行测试时,以下方法按预期工作。通过 NUnit 测试运行时,我得到一个WebException。
还有其他人遇到过这个问题吗?有办法吗?使用其他测试框架不是一种选择。
public void Download(string username, string password, string dwlFileName, string dwlUrl)
{
var webClient = new WebClient();
webClient.Headers.Add("Authorization",
"Basic " +
Convert.ToBase64String(new ASCIIEncoding().GetBytes(username + ":" + password)));
webClient.DownloadFile(dwlUrl, dwlFileName);
}
例外:
System.Net.WebException was caught
HResult=-2146233079
Message=The remote server returned an error: (403) Forbidden.
Source=System
StackTrace:
at System.Net.WebClient.DownloadFile(Uri address, String fileName)
at System.Net.WebClient.DownloadFile(String address, String fileName)
at TestProject.WebHelper.Download(String username, String password, String dwlFileName, String dwlUrl) in TestProject.WebHelper...
InnerException: null
环境
Visual Studio 2012
NUnit 2.6.3
任何 帮助将不胜感激。谢谢! :)
修改 曾尝试过Nunit testrunner和resharpner测试跑步者。两者都失败了 我使用wireshark来检查发送的数据。并且发现还有一个关于nunit测试的调用,然后是ms-test。
答案 0 :(得分:0)
在回答这个问题之前,要记住的一件事是实际测试是在测试运行者的过程中运行的。如果跑步者有一些问题/限制可能会干扰。
您是否有多个尝试访问该网址的测试?在这种情况下,服务器可能会有一些安全策略,并且会丢弃可能被认为是拒绝服务的请求(过于相似而过于常见)。
尝试添加用户代理标头:webClient.Headers.Add("user-agent", "Other");