我正在尝试让Cucumber正在测试PHP应用程序。到目前为止,我能够通过简单地在我的features目录中运行cucumber
来运行该功能。在结果的底部,它说:
如果您想要使用其他编程语言的代码段,只需确保文件即可 存在适当的文件扩展名,其中黄瓜寻找步骤定义。
这究竟是什么意思?我在Ruby中编写大部分步骤定义时很好,但在某些时候,我需要创建一些设置数据(理想情况下是在PHP中创建它)。我如何在PHP中编写步骤定义,如本声明所示?
仅供参考:我也是Ruby和Cucumber的新手。
Cuke4PHP实现了Cucumber有线协议,可以用PHP编写步骤定义。
答案 0 :(得分:3)
看看Behat,一个PHP版本的Cucumber:http://everzet.com/Behat/
答案 1 :(得分:3)
如果你找不到解决方案,这就是我今天发现的!这个家伙让我免除了我必须要做的工作才能使用PHP lol
https://github.com/olbrich/cuke4php
他为PHP实现了wire protocol。简而言之,这是另一台运行PHP步骤的服务器,当Cucumber找到它时。还传回结果。
不需要再配置env.rb了。
答案 2 :(得分:2)
步骤定义存储在features/step_definitions
中,并告诉Cucumber在遇到类似“我肚子里有3个黄瓜”等语句时该怎么做:
Given /^I have (\d+) cucumbers in my belly$/ do |cukes|
# Some Ruby code here
end
http://github.com/aslakhellesoy/cucumber/wiki/Step-Definitions
要在PHP中编写步骤,只需将它们放在features/step_definitions
中并相应地配置您的环境(features/support/env.rb
)。在Cucumber文档中有一个黄瓜特征形式的好信息:
http://github.com/aslakhellesoy/cucumber/wiki/php
Google快速搜索还提出了以下关于使用Cucumber,Webrat和Selenium进行PHP测试的文章,它看起来非常有用:
http://dev.af83.com/testing/acceptance-tests-php-project-cucumber-webrat-selenium-trio/2010/06/03
其他不直接支持的语言可以使用Cucumber的有线协议,例如, Clucumber(Common Lisp)做了什么:
http://github.com/aslakhellesoy/cucumber/wiki/wire-protocol
我不做PHP,但我希望我的回答仍有帮助。