【发布时间】:2016-02-20 05:40:51
【问题描述】:
我在 CircleCI 中运行测试时遇到了麻烦。本地测试运行良好,如屏幕截图右侧所示。但在 CircleCI 中,它将加载 SuiteContext 文件并运行 Before/AfterSuite 方法,但仅此而已。什么会导致这种行为?谢谢
default:
autoload: Test/Context
suites:
default:
paths:
features: Test/Features
contexts:
- SettingContext: ~
- LanguageContext: ~
- ActionContext: ~
- FrontendContext: ~
- FileTypeContext: ~
- FieldContext: ~
- ChannelContext: ~
- BrowserContext: ~
- SuiteContext: ~
- RequestContext: ~
- UrlContext: ~
- TemplateContext: ~
- PhraseContext: ~
- CategoryContext: ~
- EntryContext: ~
extensions:
Behat\MinkExtension:
base_url: http://ee300-clean.dev
selenium2: ~
Circle 实例中文件的路径:
/home
/ubuntu
/project
/app
/bin
/behat
/behat.yml
/Test
/Context
/Features
circle.yml
test:
override:
- cd /home/ubuntu/project/app && bin/behat
我已多次更改该覆盖命令以明确设置 Features 目录的路径,但我尝试过的任何方法都不起作用。
【问题讨论】:
-
你能发布你的 behat.yml 文件吗?
-
同意,很高兴看到有关配置和您正在运行的测试的更多详细信息。
-
用文件更新了 OP。
-
还有什么有用的?我在第一个运行的测试中放置了一个 var_dump() ,但它甚至没有达到这一点。它显然知道 Context 文件在哪里,并且不会抛出任何 PHP 错误,这很奇怪。这个项目在 CLI 中引导 ExpressionEngine CMS,它在本地运行良好。当/如果它无法在本地引导时,我会从 PHP 错误中听到它,但在这里我没有。
-
我将本地环境中的 features: Test/Features 路径更改为无效路径,然后运行测试。结果正是我在 Circle 中看到的。它不运行测试,只是 var_dumps 我在 afterSuite() 方法中的“查询运行”行。所以基本上由于某种原因它没有找到通往功能的路径。