在 TFS 2012 中运行 Jasmine 的 Chutzpah 找不到测试中的引用文件

2024-03-10

我正在使用 Chutzpah 来运行我们的 Jasmine 测试。 我已将 Chutzpah dll 添加到解决方案中,并更新了构建以运行 *.js 测试。

项目结构如下:

MyApp.Web
    Scripts
        App
            Home 
                DateControl.js 
MyApp.Web.Tests 
    Scripts 
        Jasmine 
        lib
            Chutzpah (dlls) 
        Spec 
            App 
                Home 
                    DateControlSpecs.js

Jasmine测试文件使用引用标签来引用要测试的文件

/// <reference path="../../../../../../App.web/scripts/app/home/datecontrol.js" />

Jasmine 测试已运行,但出现以下错误:

ReferenceError: Can't find variable: dateControl in file

dateControl 是被测试的对象。 如果我将要测试的代码复制到 Jasmine 测试文件中,那么测试就会通过。 使用 Visual Studio 2013 中的测试资源管理器中的 Chutzpah 测试适配器通过引用标记进行 jasmine 测试。

我不知道为什么这不起作用。

Update

@jessehouwing 的回答为我指出了问题的路径。

构建服务器上的构建文件夹具有以下结构

垃圾桶 _已发布网站 源代码

jasmine 测试脚本和库被复制到 bin 中,而测试下的脚本文件被复制到 src 目录和 _publishedwebsite 目录中。

我正在寻找一种易于管理的解决方案,以便任何未来的开发人员都不需要知道他们需要将任何新脚本链接到测试项目中。


我现在可以接受的解决方案

对于 jasmine 测试文件和正在测试的文件,我按照 Chutzpah 文档在属性中添加了“始终复制”。我没有意识到测试中的文件实际上与 jasmine 测试文件一起复制到构建 bin 文件夹中。 所以在构建服务器上我最终得到了以下结构

bin
    scripts
        app
            * application js files
        specs
            * jasmine test files

在我的茉莉花测试文件中,我添加了两个引用:

  • 首先到要测试的文件的Visual Studio目录结构
  • 二到build bin文件夹结构

Hack 1

我可以通过添加另一个对我的茉莉花测试文件的引用来使其工作,该文件使用构建目录的结构而不是解决方案目录结构,但同样会出现错误,因为路径可能输入不正确。

下面的第二个参考将允许测试在 VS Test Explorer 和 TFS Build 中运行

/// <reference path="../../../../../../App.Web/scripts/app/home/datecontrol.js" />
/// <reference path="../../../../../_PublishedWebsites\App.Web/scripts/app/home/datecontrol.js" />

Hack 2

通过将 xcopy 命令添加到项目的构建后构建事件中,我可以将要测试的文件复制到与 jasmine 测试文件相同的位置。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 TFS 2012 中运行 Jasmine 的 Chutzpah 找不到测试中的引用文件 的相关文章

  • 如何在量角器测试规范中包含 lodash?

    我想在量角器规范中使用 lodash 函数 我使用 forEach 来填充表单的值 如何将 lodash 添加到量角器脚本中以便我可以使用它 我不是问如何在我的应用程序中使用它 而是在实际运行的量角器脚本中 您可以使用本机 Array fo
  • 从 TFS 下载工作项附件(文件已损坏)

    我正在尝试创建 C 代码 因此我可以自动从 Team Foundation Server 下载 BUGS 预定义查询的所有附件 该代码似乎工作得很好 但所有下载的文件都因意外原因而损坏 我无法查看它们 有人可以看一下代码并分享意见吗 非常感
  • 命名空间中不存在类型或命名空间名称 - 但命名空间确实存在

    我已经工作了很长时间没有任何问题的项目突然开始抛出错误 例如 The type or namespace name xxx does not exist in the namespace yyy are you missing an ass
  • 使用搜索模式 '...\**\TEST-*.xml 找不到测试结果文件

    我正在 TFS Nunit 加带有适配器的 Visual Studio 中运行测试 并且我已设置构建定义如下 构建成功但没有生成测试结果文件 TFS 是否写入此 Xml 文件 日志 2017 02 08T08 08 40 8151428Z
  • Angular 中的单元测试点击事件

    我正在尝试将单元测试添加到我的 Angular 2 应用程序中 在我的一个组件中 有一个带有 click 处理程序 当用户单击按钮时 将调用在中定义的函数 ts类文件 该函数在 console log 窗口中打印一条消息 表明该按钮已被按下
  • 如何确定代理池在 Azure DevOps 中脱机的原因

    我注意到我的所有构建突然卡住了 如果我单击构建 则会收到以下错误 所有符合条件的代理均已禁用或离线 When I check my agent pools I get the following 我怎样才能让他们上线 确定他们离线的原因 尝
  • Internet Explorer Selenium Protractor e2e 测试

    我想在我们的 CI 构建过程中添加一些 e2e 测试 我已经针对 chrome firefox 添加了它们 作为最简单的 但我真的很想为几个 IE 版本做这件事 如何在 linux mac 上的构建过程中注入它 我发现这样的文章 http
  • 错误::预期有间谍,但未定义

    我收到预期的 Spy 错误 但在我的 Angular 10 测试中未定义 我正在使用 Jasmine 和 Karma 我已将 SpreadsheetService 服务模拟为mockSpreadSheetService 我正在调用它的方法
  • 如何替换 Visual Studio/TFS 2010 中的合并工具 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在角度项目中使用茉莉花进行单元测试订阅方法

    我正在尝试测试ngOnInit 具有的组件的方法subscribe method 成分 import Component OnInit from angular core import SharedDataService from serv
  • 如何使用服务帐户模拟 Azure Devops 中的用户

    我创建了一个服务帐户来模拟组织中的用户 以便以用户的名义更改工作项 我已经将该服务帐户添加到 项目收集服务帐户 组中 其中 代表其他人提出请求 设置为 允许 服务帐户具有 Visual Studio 订阅 然后 我使用与本地 TFS 配合使
  • 获取在特定日期之后修改的一组文件

    有没有人有一个方便的 powershell 脚本根据修改日期从 TFS 获取一组文件 我想说 给我这个文件夹 或子文件夹 中在 X Y ZZZZ 之后修改的所有文件 并将这些文件转储到它们通常所在的文件夹之外的文件夹中 我知道足够的 pow
  • TFS Rest API 签入版本控制

    我需要能够从 VSTS 扩展签出 编辑和签入 本地 TFVC TFS 存储库 v2015 3 在文档中https www visualstudio com en us docs integrate api tfvc overview htt
  • 尝试为每一行编写测试用例

    已经编写了跳跃方法的测试用例 但当我看到代码覆盖率报告时 它不会进入onloadend方法seat onloadend 在 createSpyObj 中我调用了 loadend 但它仍然没有进入内部 你们能告诉我如何解决它吗 下面提供我的代
  • 使用 VSTS 通过 VSTS 包和旧式 csproj 构建解决方案

    我有一个解决方案 具有以下内容 带有旧式 csproj 的多个库 net461 带有新 csproj 的多个项目 net461 Net core 库和我们的应用程序 但目标是 net461 并引用旧样式的 csproj 项目 我使用 VST
  • AngularJS 中的全局模拟对象用于 jasmine/karma 测试

    我有一个正在模拟进行单元测试的对象 基本上在我的测试文件中 我将其模拟如下 var mockObject mockMethod1 function return true mockMethod2 function return true b
  • TFS 2012 - 如何判断变更集是否经过代码审查?

    我们最近开始使用 Team Foundation Server 2012 并使用代码审查功能让其他开发人员审查代码更改 看起来效果很好 然而 作为项目负责人 我希望能够看到给定的变更集已被其他人审查 例如 假设开发人员 Bob 进行了更改并
  • 将某些项目从一个用户帐户移动到另一个用户帐户

    我要换工作公司 但我会继续从事同样的项目 我在 Azure DevOps 上有一些使用 Git 的项目 还有另一个使用 TFVC 的项目 我使用过这些集成在 Visual Studio 上的源代码控制工具 但从未使用过控制台命令 我想将源代
  • 如何在 Team Foundation Service 中查看早期代码审查的评论?

    我正在将 Microsoft 的在线 Team Foundation Service 与 Visual Studio 2012 Premium 结合使用 几个月前 我为一位同事进行了代码审查 现在同一个项目又进行了一次代码审查 我希望能够查
  • 为什么安装了 TFS Power Tools 后却缺少 tfpt.exe?

    我在 Windows 10 上使用 Visual Studio Community 2017 我安装了 TFS power tools 2011 2013 2015 我读到以前的 Power Tools 已集成到 TFS 2017 中 但任

随机推荐