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,Version=9.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a'或其依赖项之一。该系统找不到指定的文件。文件名:'Microsoft.VisualStudio.QualityTools.Tips.WebLoadTest.Tip, Version=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

我们尝试下载TFS 套件试用版,其中包含有问题的 DLL。我们已将 WebLoadTest.Tip 文件复制到 TFS 服务器的全局程序集缓存中(只是想看看这是否能解决问题)。这确实导致错误消失,但不幸的是它产生了一个新错误:

MSBUILD:警告 MSB6006:“MSTest.exe”以代码 1 退出。

解决此问题的唯一方法是升级到套件版吗?这似乎有点严格。

任何帮助表示赞赏!

编辑: 我不明白的是它似乎需要 TFS 的 WebLoadTest 功能,即使我们没有明确调用它。相反,我们使用的是第三方框架 Watin。我认为 Watin 也没有任何 webloadtest 依赖项。

4

2 回答 2

1

众所周知,在构建服务器上获取正确的程序集和其他所有东西以进行 Team System 内容的自动构建是非常困难的。受支持的方法是在构建服务器上安装您需要的东西的副本,并获得运行它们的许可,前提是为源代码贡献这些东西的人拥有相关团队版本的许可(例如,如果您正在运行 Web 测试,那么您需要拥有测试 SKU 许可证)。

我对 Watin 了解不多,但从您的错误来看,您似乎正在使用 WebLoadTest 功能,它是测试 SKU 的一部分,因此您需要为此获得许可证。

您可以在构建服务器上安装开发人员版和测试版,如果您拥有适当的许可证,它将构成开发+测试组合。或者,如果您有许可证,您可以安装套件。

如果您的组织中没有套件许可证,我会犹豫是否安装 Team Suite 试用版,因为这意味着您可能会解决问题并且您会启动并运行,但会在 90 天后发现(当您的试用期到期)您需要完整套件的许可副本才能继续运行您在过去 90 天内编写的所有测试...

于 2009-01-28T10:17:47.783 回答
1

WatiN 对 'Microsoft.VisualStudio.QualityTools.Tips.WebLoadTest.Tip 根本没有任何依赖关系..

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

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

于 2009-05-07T05:16:48.973 回答