使用c#中的VSTS-wcf服务进行单元测试
本文关键字:单元测试 服务 VSTS-wcf 中的 使用 | 更新日期: 2023-09-27 17:59:32
-
我正在尝试使用TFS中的测试套件来测试我的wcf服务。
- 我在Solution中有一个名为Inspector的wcf服务
- 配置文件位于InspectorHost项目中
- MessageInspector项目中有helper方法
- 其中有一个名为CallIssService的方法
- 此IssService是MessageInspector项目使用的服务
- 尽管服务引用在此项目中,但Config文件位于InspectorHost项目中
-
为此方法生成的测试方法是CallIssServiceTest.cs。
-
问题来了。当我尝试在此方法上运行测试时,测试失败,错误为"未指定要测试的URL。配置为在ASP.NET中运行的测试必须指定有效的URL"。它询问的URL是MessageInspector项目正在使用的IssService的URL。
这是测试方法的代码
/// <summary>
///A test for CallIss
///</summary>
[TestMethod()]
[DeploymentItem("Inspector.MessageInspector.dll")]
public void CallIssServiceTest()
{
CustomUserNameValidator_Accessor target = new CustomUserNameValidator_Accessor();
target._userName = "tempUserName";
target._password = "temptemp";
Identity expected = new Identity();
expected.UserID = "tempUserName";
expected.board = new Board();
expected.board.Code = "013";
Identity actual;
actual = target.CallIAA();
Assert.IsNotNull(actual);
Assert.AreEqual(expected.UserID, actual.UserID);
Assert.AreEqual(expected.board.Code, actual.board.Code);
}
`
这是要测试的类。
using IssService;
/// <summary>
/// This calles the Iss Service to Authenticate the user
/// </summary>
/// <returns></returns>
private Identity CallIssService()
{
Identity userIdentity =
new IssServiceClient().VerifyUser(_userName, _password, null);
return userIdentity;
}
有人能帮助我理解我犯了什么错误吗?或者在这种情况下还有什么需要做的吗。
提前感谢您的帮助。
谨致问候,Chand。
修复(这个链接帮助了我。)
1) 在LocalTestRun.testrunConfigfile/deployment中,主机项目中的Web.Config文件被选中。单击应用并保存。
2) RenameWebConfig.bat文件被添加到测试项目的文件夹中,下面的一行代码指示它复制Web.config文件,并在每次有新的生成时对其进行重命名。
重命名web.config UAWebService.TestProject.dll.config
因此,配置设置对测试项目不可见的问题被解决了。不知道微软为什么跳过这方面;)