【问题标题】:Karma/jasmine/pact-js example using requirejs使用 requirejs 的 Karma/jasmine/pact-js 示例
【发布时间】:2017-05-25 08:35:45
【问题描述】:

我正在处理karma/jasmine example。它按原样工作正常。我需要让它与requirejs一起工作。当我引入 requirejs 并将客户端和客户端规范类转换为 AMD 时,我开始收到此错误:

PhantomJS 2.1.1 (Windows 7 0.0.0) 客户端 sayHello 应该说 hello FAILED TypeError: undefined is not a constructor (evalating 'Pact') in js/client-spec.js(第 11 行) js/client-spec.js:11:28

要查看问题,您可以查看my example project。运行它:

  1. 在上面的示例项目中提取 zip 文件
  2. 从 PactTest 目录,运行: npm 安装
  3. 完成后,运行: npm 运行测试:客户端

干杯, 迈克

【问题讨论】:

  • 我不确定您是否正确使用了 requirejs,并且我很确定您看到的问题是因为配置未针对您尝试执行的操作正确设置。
  • 嗨,你有 package.json 用于它吗?
  • @user2451016,package.json 在上面链接的示例项目中。
  • Mike 嗨,谢谢,但由于防火墙,无法访问它。你有要点/ github吗?谢谢

标签: requirejs pact


【解决方案1】:

您需要将模块名称设置为“Pact”而不是“pact-web”。好像requirejs找不到匹配的模块名。

client-spec.js 中将define 更改为:

define(['client', 'Pact'], function (example, Pact) {

test-main.js 中更新配置如下:

require.config({
    baseUrl: '/base',
    paths: {
        // 'pact-web': 'node_modules/pact-web/pact-web', <-- not this
        'Pact': 'node_modules/pact-web/pact-web',
        'client': 'js/client'
    },
    deps: allTestFiles,
    callback: window.__karma__.start
})

诚然,我并不完全了解 RequireJS 的来龙去脉,但这确实有效。

我已更新 Pact documentation 以包含对此的注释。

这里是更新的 Gist 的链接以供将来参考:https://gist.github.com/mefellows/15c9fcb052c2aa9d8951f91d48d6da54

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-19
    • 2017-06-10
    • 2018-12-23
    • 1970-01-01
    • 2014-01-10
    • 1970-01-01
    相关资源
    最近更新 更多