Cucumber-cpp 需要运行示例的软件
Cucumber-cpp required software for running example
克隆和安装后(我相信正确的方式 - 我遵循了本教程(,我转到~CucumberCucumbercppexamplesCalc
并键入cucumber --init
。
我得到
C:CucumberCucumber-cppexamplesCalc>cucumber --init
exist features
exist features/step_definitions
exist features/support
exist features/support/env.rb
Timed out calling wire server with message 'step_matches' (Timeout::Error)
其次
C:/Ruby/lib/ruby/gems/2.4.0/gems/cucumber-wire-0.0.1/lib/cucumber/wire/connection.rb:45:in `block in fetch_data_from_socket'
C:/Ruby/lib/ruby/2.4.0/timeout.rb:108:in `timeout'
C:/Ruby/lib/ruby/gems/2.4.0/gems/cucumber-wire-0.0.1/lib/cucumber/wire/connection.rb:45:in `fetch_data_from_socket'
C:/Ruby/lib/ruby/gems/2.4.0/gems/cucumber-wire-0.0.1/lib/cucumber/wire/connection.rb:22:in `call_remote'
C:/Ruby/lib/ruby/gems/2.4.0/gems/cucumber-wire-0.0.1/lib/cucumber/wire/request_handler.rb:10:in `execute'
C:/Ruby/lib/ruby/gems/2.4.0/gems/cucumber-wire-0.0.1/lib/cucumber/wire/protocol/requests.rb:14:in `execute'
C:/Ruby/lib/ruby/gems/2.4.0/gems/cucumber-wire-0.0.1/lib/cucumber/wire/protocol.rb:8:in `step_matches'
C:/Ruby/lib/ruby/gems/2.4.0/gems/cucumber-wire-0.0.1/lib/cucumber/wire/connections.rb:33:in `block in step_matches'
C:/Ruby/lib/ruby/gems/2.4.0/gems/cucumber-wire-0.0.1/lib/cucumber/wire/connections.rb:33:in `map'
C:/Ruby/lib/ruby/gems/2.4.0/gems/cucumber-wire-0.0.1/lib/cucumber/wire/connections.rb:33:in `step_matches'
C:/Ruby/lib/ruby/gems/2.4.0/gems/cucumber-3.1.1/lib/cucumber/step_match_search.rb:20:in `call'
C:/Ruby/lib/ruby/gems/2.4.0/gems/cucumber-3.1.1/lib/cucumber/step_match_search.rb:20:in `call'
C:/Ruby/lib/ruby/2.4.0/delegate.rb:83:in `method_missing'
C:/Ruby/lib/ruby/gems/2.4.0/gems/cucumber-3.1.1/lib/cucumber/step_match_search.rb:62:in `call'
C:/Ruby/lib/ruby/gems/2.4.0/gems/cucumber-3.1.1/lib/cucumber/filters/activate_steps.rb:66:in `matches'
C:/Ruby/lib/ruby/gems/2.4.0/gems/cucumber-3.1.1/lib/cucumber/filters/activate_steps.rb:47:in `result'
C:/Ruby/lib/ruby/gems/2.4.0/gems/cucumber-3.1.1/lib/cucumber/filters/activate_steps.rb:37:in `find_match'
C:/Ruby/lib/ruby/gems/2.4.0/gems/cucumber-3.1.1/lib/cucumber/filters/activate_steps.rb:33:in `attempt_to_activate'
C:/Ruby/lib/ruby/gems/2.4.0/gems/cucumber-3.1.1/lib/cucumber/filters/activate_steps.rb:29:in `map'
C:/Ruby/lib/ruby/gems/2.4.0/gems/cucumber-3.1.1/lib/cucumber/filters/activate_steps.rb:29:in `new_test_steps'
C:/Ruby/lib/ruby/gems/2.4.0/gems/cucumber-3.1.1/lib/cucumber/filters/activate_steps.rb:23:in `test_case'
C:/Ruby/lib/ruby/gems/2.4.0/gems/cucumber-3.1.1/lib/cucumber/filters/activate_steps.rb:12:in `test_case'
C:/Ruby/lib/ruby/gems/2.4.0/gems/cucumber-core-3.1.0/lib/cucumber/core/test/case.rb:25:in `describe_to'
C:/Ruby/lib/ruby/gems/2.4.0/gems/cucumber-3.1.1/lib/cucumber/filters/activate_steps.rb:12:in `test_case'
C:/Ruby/lib/ruby/gems/2.4.0/gems/cucumber-core-3.1.0/lib/cucumber/core/test/case.rb:25:in `describe_to'
C:/Ruby/lib/ruby/gems/2.4.0/gems/cucumber-core-3.1.0/lib/cucumber/core/test/filters/locations_filter.rb:18:in `block in done
C:/Ruby/lib/ruby/gems/2.4.0/gems/cucumber-core-3.1.0/lib/cucumber/core/test/filters/locations_filter.rb:17:in `each'
C:/Ruby/lib/ruby/gems/2.4.0/gems/cucumber-core-3.1.0/lib/cucumber/core/test/filters/locations_filter.rb:17:in `done'
C:/Ruby/lib/ruby/gems/2.4.0/gems/cucumber-core-3.1.0/lib/cucumber/core/filter.rb:62:in `done'
C:/Ruby/lib/ruby/gems/2.4.0/gems/cucumber-core-3.1.0/lib/cucumber/core/test/filters/tag_filter.rb:18:in `done'
C:/Ruby/lib/ruby/gems/2.4.0/gems/cucumber-core-3.1.0/lib/cucumber/core/compiler.rb:24:in `done'
C:/Ruby/lib/ruby/gems/2.4.0/gems/cucumber-core-3.1.0/lib/cucumber/core/gherkin/parser.rb:37:in `done'
C:/Ruby/lib/ruby/gems/2.4.0/gems/cucumber-core-3.1.0/lib/cucumber/core.rb:32:in `parse'
C:/Ruby/lib/ruby/gems/2.4.0/gems/cucumber-core-3.1.0/lib/cucumber/core.rb:21:in `compile'
C:/Ruby/lib/ruby/gems/2.4.0/gems/cucumber-3.1.1/lib/cucumber/runtime.rb:75:in `run!'
C:/Ruby/lib/ruby/gems/2.4.0/gems/cucumber-3.1.1/lib/cucumber/cli/main.rb:34:in `execute!'
C:/Ruby/lib/ruby/gems/2.4.0/gems/cucumber-3.1.1/bin/cucumber:9:in `<top (required)>'
C:/Ruby/bin/cucumber:23:in `load'
C:/Ruby/bin/cucumber:23:in `<main>'
虽然我知道这是一个基本错误,但我真的找不到解决方案。我访问了在谷歌中输入时显示的大多数链接。
我的问题是: -
我正在网络上工作,这会导致接线问题吗?
- 运行示例是否需要任何额外步骤?文档提到了 CMake,但我没有找到它的用法 -
还有哪些其他问题可能导致这种情况?
- 你能指出我任何开始使用黄瓜-CPP 的好教程吗?(仅书面(
此计算机是 Windows 7 专业版
编辑:如果我在线路文件中使用给定的端口,我会得到:
C:CucumberCucumber-cppexamplesCalc>cucumber --init
exist features
exist features/step_definitions
exist features/support
exist features/support/env.rb
Unable to contact the wire server at localhost:3902. Is it up?
(Cucumber::Wire::Connection::ConnectionError)
我也无法根据我找到的任何信息解决此问题。
答案:
- Windows 上的防火墙可能会导致问题,但通常您会看到一个弹出窗口,请求确认访问(您也可以尝试短暂禁用防火墙以验证这是否是问题(。
- 是的,虽然缺乏很好的解释,但项目的自述文件中定义的步骤应该是正确的。
- 不使用C++步骤定义启动线路服务器。
- 项目存储库中的指南可能是最佳起点(请确保遵循所有步骤(。不幸的是,不是很好的文档。
Cucumber-CPP 目前的工作方式是让 Cucumber-Ruby 连接到 TCP 端口,C++ 实现正在侦听该端口。当在cucumber.wire
文件中定义线路协议时,主机和端口是C++线路协议服务器正在侦听的,Cucumber-Ruby 将尝试使用 Cucumber-CPP 运行它们。
C++是一种编译语言,因此必须先编译步骤定义。提供的示例使用 CMake,如自述文件中所述。Cucumber-CPP 需要链接到步骤定义和它们使用的所有内容(通常是被测试的应用程序(,创建一个可执行文件,该文件将侦听 Cucumber-Ruby 连接的线路协议端口(默认为localhost:3902
(以连接(并在断开连接时退出(。
+------------------------------------------+
| |
+----------+ | +----------+ +----------+ +----------+ |
| | | | | | | | | |
| Cucumber | | | Cucumber | | C++ Step | | Your | |
| Ruby |--------->| CPP Wire |--| Defs |--| CPP App | |
| | | | Server | | | | | |
| | | | | | | | | |
+----------+ | +----------+ +----------+ +----------+ |
| |
+------------------------------------------+
相关文章:
- 运行同一解决方案的另一个项目的项目
- CMake-按正确顺序将项目与C运行时对象文件链接
- 如何运行位于boost/libs/python/example/tutorial目录中的hello.cpp和Jamfil
- 代码在main()中运行,但在函数中出现错误
- Cucumber-cpp 需要运行示例的软件
- 用户需要满足运行C 17软件的任何先决条件吗?
- 用于运行高可靠性航天软件的特定 Linux 发行版
- 在运行时调查C++软件中的类
- 从 USB 设备运行软件
- 如何使用C ++在后台运行软件而不显示任何窗口
- 一个应用程序可以运行另一个应用软件的代码吗
- visual如何在个人软件中运行C++程序而不进行重建
- GUI软件设计模式,用于在运行时管理多个小部件
- 有什么好方法可以指示计算机是否可以运行特定的程序/软件
- 如何使软件并行运行,c++, directshow, opencv
- 当您下载其他库并将其功能添加到C ++程序中时,您是否能够在另一台PC上运行您的软件(没有库)?
- 与OpenCV 3.0捆绑在一起的IPPCV软件包是否包括所有可能的与ipp相关的OpenCV函数运行的改进?
- 内存映射一个巨大的文件在32位软件运行在64位操作系统
- 64位系统能运行包含内联汇编的32位软件吗?
- 什么是同时运行跟踪软件和服务器的正确方法?(OpenCV 3)