【问题标题】:What are the best practices for the AspNetDevelopmentServerHost attribute?AspNetDevelopmentServerHost 属性的最佳实践是什么?
【发布时间】:2010-10-30 10:44:48
【问题描述】:

我们有一个 Web 应用程序项目(实际上有几十个......),它附有一个测试项目。在测试项目中,我有一个简单的单元测试,它使用了几种方法。

在本地运行,单元测试执行并工作。

但是,当我们的 TFS 构建服务器尝试执行测试时,它会失败并显示有关 AspNetDevelopmentServerHost 属性的路径无效的错误。其他团队成员可以很好地执行它。

问题是我的 TFS 工作区的根设置为 c:\projects\ 一个团​​队成员的设置为 c:\tfs2008\ 另一方面,TFS 构建服务器将 pathToWebRoot 变量设置为“c :\blahblah\Release_PublishedWebsites..." 这会导致路径错误。

由于我们拥有的项目数量众多,我不能让每个人在每次切换项目时都重置环境变量。

那么,关于在团队环境中对 Web 项目进行单元测试的最佳实践是什么? MSDN site article 是真正的微软风格,没有什么帮助。

【问题讨论】:

    标签: unit-testing web-applications tfs build-process


    【解决方案1】:

    你应该在AspNetDevelopmentServerAspNetDevelopmentServerHost属性的,pathToWebApp参数中指定字符串 %pathtowebroot%\\WebSiteName

    【讨论】:

      【解决方案2】:

      我们使用:

      <TestMethod(), _
       HostType("ASP.NET"), _
       AspNetDevelopmentServerHost("$(SolutionDir)\\MyWebProject", "/"), _
       UrlToTest("http://localhost:44444/")>
       Public Sub Test()
           AssertStuff();
       End Sub
      

      $(SolutionDir) 表示它在每个人的环境中都可以正常工作,并且可以签入所有测试。我们每次自动创建新测试时都必须更改它,但无论如何我们正在编写测试,所以它是难度不大。

      【讨论】:

        【解决方案3】:

        可以在构建期间设置环境变量以更改路径并使其在本地环境中仍然工作。

        【讨论】:

        • 经过大量研究,真正的问题是 Web 项目的 TFS 构建中的 PathToWebRoot 设置不正确。网站工作得很好,但它没有为具有不同输出路径的 Web 项目正确设置。顺便说一句,我放弃了这个,希望 2010 年能解决这个问题。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-09-08
        • 1970-01-01
        • 2011-01-07
        • 2016-06-19
        • 1970-01-01
        • 2011-06-07
        相关资源
        最近更新 更多