运行 Pact- Karma-Mocha 框架时出现错误 - “无法找到变量:Pact”

While running Pact- Karma-Mocha framework, getting error - 'Can't find variable: Pact'

我正在尝试获取示例 PACT JS 框架(任何变体)运行 以进行合同测试。最初的计划只是获取提供的示例 运行 & 然后对终点进行更改并根据我们自己的目的进行自定义。

PACT Foundation link: https://github.com/pact-foundation/pact-js/tree/master/karma/mocha 环境:

赢 7 节点:v8.11.4 安装的依赖项: “@pact-foundation/karma-pact”:{ "version": "2.1.8", “@pact-foundation/pact-node”:{ "version": "6.19.11",

我在尝试获取它时遇到以下错误 运行。

命令:业力启动karma.conf.js

C:\VarProjects\VanillaMocha>karma start test/karma.conf.js

10 09 2018 09:53:34.544:错误 [配置]: 文件 C:\VarProjects\VanillaMocha\test\karma.conf.js 不存在!

C:\VarProjects\VanillaMocha>业力开始karma.conf.js [2018-09-10T08:53:42.384Z] 信息:W5167037 上的 pact-node@6.19.11/16892: 使用选项创建 Pact Server: 端口= 1234, 消费者 = KarmaMochaConsumer, 提供者 = KarmaMochaProvider, 日志级别 = 调试, log = C:\VarProjects\VanillaMocha\logs\pact.log, 目录 = C:\VarProjects\VanillaMocha\pacts, pactFileWriteMode = 覆盖, SSL = 假, 科尔斯=假, 主机=本地主机 [2018-09-10T08:53:42.401Z] 信息:W5167037 上的 pact-node@6.19.11/16892:已创建 'standalone\win32-1.54.4\bin\pact-mock-service.bat 服务 --port '1234' --consumer 'KarmaMochaConsumer ' --provider 'KarmaMochaProvider' --log-level 'DEBUG' --log 'C:\VarProjects\VanillaMocha\logs\pact.log' --pact_dir 'C:\VarProjects\VanillaMocha\pacts' --pact-file-write-mode 'overwri te' --host 'localhost'' PID 为 18912 的进程 10 09 2018 09:53:44.980:INFO [pact]: Pact Mock Server 运行 端口:1234 10 09 2018 09:53:45.054:WARN [watcher]: 模式 "C:/dist-web/pact-web.js" 不匹配任何文件。 10 09 2018 09:53:45.092:INFO [karma]: Karma v3.0.0 服务器启动于 http://0.0.0.0:9876/ 10 09 2018 09:53:45.093:INFO [launcher]: 以无限并发启动浏览器 PhantomJS_without_security 10 09 2018 09:53:45.101:INFO [launcher]: 启动浏览器 PhantomJS 10 09 2018 09:53:46.811:INFO [PhantomJS 2.1.1 (Windows 7 0.0.0)]:已连接到 id 为 47921548 的套接字 qMhVUJZzdDCD_YuKAAAA PhantomJS 2.1.1 (Windows 7 0.0.0) 客户端 "before all" 挂钩失败 找不到变量:Pact 客户-spec.js:10:32 PhantomJS 2.1.1 (Windows 7 0.0.0) 客户端 "after all" 挂钩失败 undefined 不是对象(正在计算 'provider.finalize') 客户-spec.js:21:28 PhantomJS 2.1.1 (Windows 7 0.0.0):执行 2 of 4 (2 FAILED) ERROR (0.013 secs / 0.001 secs) [2018-09-10T08:53:46.985Z] 信息:W5167037 上的 pact-node@6.19.11/16892:删除所有 Pact 服务器。 [2018-09-10T08:53:46.986Z] 信息:W5167037 上的 pact-node@6.19.11/16892:删除带有 PID 的协议:18912

C:\VarProjects\VanillaMocha>KARMA 开始 [2018-09-10T08:54:14.809Z] 信息:W5167037 上的 pact-node@6.19.11/7492: 使用选项创建 Pact Server: 端口= 1234, 消费者 = KarmaMochaConsumer, 提供者 = KarmaMochaProvider, 日志级别 = 调试, log = C:\VarProjects\VanillaMocha\logs\pact.log, 目录 = C:\VarProjects\VanillaMocha\pacts, pactFileWriteMode = 覆盖, SSL = 假, 科尔斯=假, 主机=本地主机 [2018-09-10T08:54:14.823Z] 信息:W5167037 上的 pact-node@6.19.11/7492:已创建 'standalone\win32-1.54.4\bin\pact-mock-service.bat 服务 --port '1234' --消费者'KarmaMochaConsumer' --provider 'KarmaMochaProvider' --log-level 'DEBUG' --log 'C:\VarProjects\VanillaMocha\logs\pact.log' --pact_dir 'C:\VarProjects\VanillaMocha\pacts' --pact-file-write-mode '覆盖 e' --host 'localhost'' PID 为 2920 的进程 10 09 2018 09:54:17.376:INFO [pact]: Pact Mock Server 运行 端口:1234 10 09 2018 09:54:17.447:WARN [watcher]: 模式 "C:/dist-web/pact-web.js" 不匹配任何文件。 10 09 2018 09:54:17.483:INFO [karma]: Karma v3.0.0 服务器启动于 http://0.0.0.0:9876/ 10 09 2018 09:54:17.484:INFO [launcher]: 以无限并发启动浏览器 PhantomJS_without_security 10 09 2018 09:54:17.489:INFO [launcher]: 启动浏览器 PhantomJS 10 09 2018 09:54:19.243:INFO [PhantomJS 2.1.1 (Windows 7 0.0.0)]:已连接到套接字 rn-kwBRGhJbyUwvZAAAA,id 为 54614606 PhantomJS 2.1.1 (Windows 7 0.0.0) 客户端 "before all" 挂钩失败 找不到变量:Pact 客户-spec.js:10:32 PhantomJS 2.1.1 (Windows 7 0.0.0) 客户端 "after all" 挂钩失败 undefined 不是对象(正在计算 'provider.finalize') 客户-spec.js:21:28 PhantomJS 2.1.1(Windows 7 0.0.0):执行 2 次,共 4 次(2 次失败)错误(0.012 秒/0 秒)

请指教,非常感谢

代码失败,因为缺少 pact-web。您可以在包含的错误消息中看到这一点:

Pattern "C:/dist-web/pact-web.js" does not match any file. 

发生这种情况是因为您在示例存储库之外使用示例 karma.conf.js 而未进行修改。

引用karma.conf.js的相关部分:

// if you are using this example to setup your own project 
// load pact from the node_modules directory
'../../dist-web/pact-web.js',
// Example Using NPM package
// 'node_modules/@pact-foundation/pact-web/pact-web.js',

查看您的目录结构,评论这一行:

'../../dist-web/pact-web.js',

并取消注释这一行:

// 'node_modules/@pact-foundation/pact-web/pact-web.js',

应该可以解决你的问题。

请注意,您还需要确保 @pact-foundation/pact-web 是开发依赖项:

npm install --save-dev '@pact-foundation/pact-web'