使用c#中的VSTS-wcf服务进行单元测试

本文关键字:单元测试 服务 VSTS-wcf 中的 使用 | 更新日期: 2023-09-27 17:59:32

  • 我正在尝试使用TFS中的测试套件来测试我的wcf服务。

    • 我在Solution中有一个名为Inspector的wcf服务
    • 配置文件位于InspectorHost项目中
    • MessageInspector项目中有helper方法
    • 其中有一个名为CallIssService的方法
    • IssServiceMessageInspector项目使用的服务
    • 尽管服务引用在此项目中,但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。

使用c#中的VSTS-wcf服务进行单元测试

修复(这个链接帮助了我。)


1) 在LocalTestRun.testrunConfigfile/deployment中,主机项目中的Web.Config文件被选中。单击应用并保存。

2) RenameWebConfig.bat文件被添加到测试项目的文件夹中,下面的一行代码指示它复制Web.config文件,并在每次有新的生成时对其进行重命名。

重命名web.config UAWebService.TestProject.dll.config

因此,配置设置对测试项目不可见的问题被解决了。不知道微软为什么跳过这方面;)