2009-06-01 76 views
3

我们有一个Web应用程序项目(实际上有几十个),它附有一个测试项目。在测试项目中,我有一个简单的单元测试,可以执行一些方法。AspNetDevelopmentServerHost属性的最佳实践是什么?

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

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

问题是我的TFS工作区的根目录设置为c:\ projects \其中一个团队成员将它们设置为c:\ tfs2008 \另一方面,TFS构建服务器将pathToWebRoot变量设置为“ c:\ blahblah \ Release_PublishedWebsites ...“导致一个不好的路径。

由于我们有很多项目,我不能让每个人在每次切换项目时重置一个环境变量。

那么,团队环境中单元测试Web项目的最佳做法是什么? MSDN site article是真正的微软时尚不太有用。

回答

3

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

+0

足够接近。我只希望我们可以在运行时设置它。 – NotMe 2010-09-13 14:54:14

1

可以在构建过程中设置环境变量以改变路径并仍然在本地环境中工作。

+0

经过大量研究,真正的问题是在Web项目的TFS Build中错误地设置了PathToWebRoot。网站工作得很好,但它没有为具有不同输出路径的Web项目正确设置。顺便说一句,我放弃了这个希望,2010年解决了这个问题。 – NotMe 2009-12-15 03:46:33

3

我们使用:

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

$(SolutionDir)意味着它工作正常,在每个人的环境,所有的测试中可以检查我们不得不这样做。每次我们自动创建一个新的测试时都会改变它,但是我们仍然在编写测试,所以它不是太困难。