问题标签 [codeception]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2850 浏览

foreach - 对于每个带有 behat 或 codeception 的元素

我想测试一个具有动态菜单结构的网站。我想遍历所有菜单项并在每个页面上运行相同系列的测试。我们正在谈论 100 多个页面,这些页面会定期更改。

我想用 behat 或 codeception 来做到这一点。

有人知道如何做到这一点吗?

0 投票
1 回答
2111 浏览

symfony - 使用 Codeception、Symfony2 功能测试服务如何添加断言?

摘要:我想在我的测试中使用模块断言。

以前我使用 PHPUnit 测试测试过 Symfony2 服务。这没关系,但我想使用 Codeception Symfony2 模块提供的一些设施以及更清洁的测试风格。

我使用以下 services.suite.yml 创建了一个新套件

我运行了 build 和 generate:cest 并有一个 ServiceCest.php 测试文件

这个测试通过了,因为我在我的 ServiceHelper.php 文件中添加了一个断言函数。

Module 类有一组丰富的断言函数,我希望能够直接在我的测试中使用它们。但我不认为模块对象可用于测试。必须向 ServiceHelper 添加一系列断言函数似乎是重复的。有没有更好的办法?

例如在 phpunit 测试中我可能有这些断言。

$station = $ecservice->getStation("奥克兰");

$this->assertEquals(1,count($stations)); $this->assertEquals('Auckland',$station->getDisplayName());

我的问题是是否有办法在功能测试中包含所有这些断言,或者我是否必须将大量特定于测试的断言移动到帮助程序中。

Unit模块似乎提供了许多这些功能 - 但已被弃用。

我试着把 \PHPUnit_Framework_Assert::assertEquals(1,count($stations)); 在测试中 - 但这会引发测试工具未处理的失败异常。

谢谢安德鲁

PS我会标记这个'codeception',但我还没有要点。也许其他人可以。

0 投票
3 回答
10133 浏览

webdriver - Codeception pressKey ENTER 不起作用

我不熟悉代码接收。我正在尝试在输入字段中插入文本并按 ENTER 按钮。

文本已输入,但未按下回车键。有任何想法吗?

0 投票
2 回答
1168 浏览

codeception - Codeception see 和 dontSee 都失败了

我正在使用 Selenium2 模块进行验收测试

我的acceptance.suite.yml 包含

在我的测试文件中,我尝试了以下两种方法,但都失败了

我希望 dontSee 断言通过,因为子菜单默认是隐藏的

我得到的错误是

Guy 意外地看到元素“.menu .subMenu”:无法断言对象为空。

我的 HTML 的开头看起来像这样

0 投票
2 回答
7896 浏览

unit-testing - Codeception - 验收测试有效,但功能测试无效

我在 WAMP 平台上运行最新版本的 Codeception - 我的接受是非常基本的,但工作正常(见下文):

简而言之 - 它检查页面是“身份验证/登录”,填写 2 个表单字段并单击登录按钮。这工作没有任何问题。

这是我相同的功能测试:

当我从命令行运行它时,我收到以下错误(不是完整的错误,但足以理解问题):

我的 Acceptance 套件启用了“PhpBrowser”和“WebHelper”模块,功能套件启用了“FileSystem”和“TestHelper”(在acceptance.suite.yml 和functional.suite.yml 文件中)

显然 amOnPage() 函数是问题所在 - 但是我被引导相信 amOnPage() 应该在验收和功能测试中工作?或者我错了 - 也 - 有人可以解释这些数字的含义,例如出现的“<-[35;1m”

更新:我尝试将“WebHelper”模块添加到functional.suite.yml,但我没有看到在TestGuy.php 文件中自动生成amOnPage() - 有什么想法吗?

我的配置文件如下:

网络人

测试人

0 投票
1 回答
282 浏览

unit-testing - Codeception - HTML 报告生成似乎很慢?

我正在使用 Codeception 运行三个验收测试,基本上如下:-

  • 检查电子邮件地址“admin@admin.com”是否存在
  • 创建一个新的用户帐户
  • 登录网站

显然这需要数据库,所以我在acceptance.suite.yml 的模块列表中添加了“Db”,但是报告的生成需要一些时间,这是正常的还是我的设置有问题?

以下是报告(根据生成的 html 文件,每个报告花费的时间)

  • 检查 admin@admin.com 帐户是否存在 (AdminCept.php) (0.01s)
  • 创建新用户帐户 (CreateUserCept.php) (19.1s)
  • 登录网站(LoginCept.php)(21.72s)

总共大约 40 秒(尽管命令行状态为 1:02 - 我猜因为它也将模拟数据库 dump.sql 替换回数据库) 任何人都可以对此事有所了解吗?

0 投票
0 回答
135 浏览

codeception - 我们应该使用 BDD 在代码接收中创建特征文件吗?还是 codeception 会自动使用 cept 文件生成特征?

在代码接收中,我们需要使用 BDD 创建特征文件(场景)还是会使用 cept 文件自动生成特征文件(场景)?

请告诉我我们是否需要在代码接收中创建场景来执行脚本(测试用例)?

0 投票
1 回答
2732 浏览

php - 无法在虚拟机中运行 codeception -Mink 无法找到和加载

我安装了一个 vm ubuntu 来宾操作系统。

我的应用程序正在我的主机操作系统中的浏览器中运行,网址为

http://abc.localhost:8888

我在来宾操作系统终端中键入 php codecept.phar run。

我收到以下错误:

我的acceptance.yml 说

我在acceptance.suite.yml 中尝试过使用和不使用8888。我犯了同样的错误。

请指教。

警告:我还在https://github.com/Codeception/Codeception/issues/388中交叉发布了同一张票。如果我从那里得到答案,将更新这个问题。

0 投票
0 回答
582 浏览

php - 如何在 Codeception 和 Selenium2 中使用 waitForJs

我是 Codeception 和 Selenium 的新手,在测试 Ajax 调用时遇到了麻烦。我想使用 waitForJS 方法,但它返回以下错误:

我的 yml 文件如下所示:

我正在使用 selenium-server-standalone-2.33.0.jar

任何帮助,将不胜感激。

0 投票
2 回答
6881 浏览

php - 使用 Codeception 功能测试来发布数据

我想创建一个测试,它将直接将数据发布到 Laravel 页面以测试它处理不良数据。

我可以从打开表单的页面开始运行验收测试,调用$I->click('Search');并且页面按预期处理数据。

阅读 Codeception 网站上的功能测试介绍,它指出

In simple terms we set $_REQUEST, $_GET and $_POST variables, then we execute your script inside a test, we receive output, and then we test it.

这听起来很理想,设置一个 POST 数据数组并直接在处理页面上触发它。但我找不到任何文档。我玩过,sendAjaxPostRequest但它没有向 $_POST 传递任何东西。

有没有办法像这样单独测试页面?