Watin in TFS 2008?

3

我正在尝试让我的WATIN测试在TFS2008(持续集成)中作为夜间构建的一部分工作。

所有测试在我的本地机器上(从VS2008)都能正常工作,我的单元测试(非watin)在本地和TFS中都表现良好。

为了说明我们正在做什么,我有一个简单的测试:

    [TestMethod]
    public void Watin()
    {
        //set up stuff

        browser.GoTo("http://localhost/");
    }

当在TFS中运行测试时,会导致以下错误:
TestTypes\37e36796-fb51-4610-8d5c-e00ceaa68b9f 无法加载,因为以下原因 TIP 无法实例化: System.IO.FileNotFoundException: 无法加载文件或程序集'Microsoft.VisualStudio.QualityTools.Tips.WebLoadTest.Tip,版本=9.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a'其中一个依赖项。系统找不到指定的文件。 文件名: 'Microsoft.VisualStudio.QualityTools.Tips.WebLoadTest.Tip,版本=9.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a' at System.RuntimeTypeHandle._GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark, Boolean loadTypeFromPartialName)
在网上搜索类似问题时,我得出结论:这是我们使用的TFS版本的问题,但我不确定。我们使用的是TFS 2008 Developer Edition / VS2008 Developer Edition。
我们尝试下载包含所需DLL的TFS套件试用版。我们已将WebLoadTest.Tip文件复制到TFS服务器的全局程序集缓存中(只是为了看看是否可以解决问题)。这确实使错误消失了,但不幸的是产生了新错误:
MSBUILD : warning MSB6006:“MSTest.exe”以代码1退出
解决该问题的唯一方法是升级到套件版吗?那似乎有点过于严格。
任何帮助都表示感激!
编辑: 我不理解的是,即使我们没有明确调用它,它似乎也需要TFS的WebLoadTest功能。相反,我们正在使用第三方框架Watin。 我认为Watin也没有任何webloadtest依赖项。

你尝试过从命令行运行msbuild并查看它是否输出任何错误吗? 我曾经遇到一个问题,即mstest或msbuild返回相同的代码,但直到我从命令行运行才看到实际的错误。 - mjallday
我正在努力让WatiN测试在TFS下运行。虽然我没有遇到这个问题,但我确实不得不在服务器上安装WatiN.core.dll,以便VSTestHost能够找到它。 现在我遇到了一个WatiN超时错误,加载IE时出现 - 我想我应该在这方面发布一个单独的问题。 - Craig Fisher
2个回答

1
在构建服务器上获取正确的程序集和其他必要的东西以进行 Team System 自动化构建是非常困难的。支持的方法是在构建服务器上安装所需的内容的副本,并且只有当为源代码贡献该内容的人拥有相关团队版本的许可证时,您才有权运行它们(例如,如果您正在运行 Web 测试,则需要具有 Test SKU 许可证)。
我不太了解 Watin,但从您的错误信息来看,似乎您正在使用 Test SKU 的 WebLoadTest 功能,因此您需要拥有该功能的许可证。
您可以在构建服务器上安装开发人员版和测试版,如果您只拥有适当的许可证,则会形成 Dev+Test 组合。或者,如果您拥有许可证,也可以安装套件。
如果您的组织没有套件许可证,我会犹豫安装 Team Suite 的试用版,因为这意味着您可能会解决问题并开始运行所有测试,但在 90 天后(试用版到期时),您需要拥有完整套件的许可证才能继续运行过去 90 天编写的所有测试...

如果您的组织没有套件许可证,我会犹豫安装Team Suite的试用版,因为这意味着您可能会解决问题。同意,我们只是在评估它是否是问题的原因。 - ampburner
问题:在运行WatiN测试之前,您是如何部署网站的? - Craig Fisher

1

WatiN根本不依赖于'Microsoft.VisualStudio.QualityTools.Tips.WebLoadTest.Tip'。

您只需要创建一个测试项目,然后添加一个单元测试,引用watin.core.dll、mshtml.dll和SHDocVw.dll。我认为在某个时候您已经向解决方案添加了VS Web测试,并且现在它引用了这些程序集。

尝试使用新的空测试解决方案,看看情况如何。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接