问题标签 [liipfunctionaltestbundle]

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 投票
1 回答
215 浏览

java - html5检查器编译

我想LiipFunctionalTestBundle在我的 Symfony2 项目中使用 html5 验证器。因此,我按照 bundle 的 github 页面上的说明进行操作,但在 python 构建期间出现此错误:

IOError:[Errno 2] 没有这样的文件或目录:'./syntax/relaxng/datatype/java/dist/html5-datatypes.jar'

实际上,该路径下有一个“dist”文件夹,但它是空的(里面没有文件)。我也尝试从 daisy-pipeline 下载文件,但在再次运行 python build 后它被删除了

我在 Ubuntu x64 上使用 Java 1.7.0_04

0 投票
3 回答
8309 浏览

php - 使用 Symfony 测试数据库插入

今天是个好日子,

在过去的几天里,我一直在研究测试驱动开发,并决定我也需要学习它。虽然我无法弄清楚如何精确地做到这一点。

我的项目依赖于 Symfony2.1.6 框架和 Doctrine,所以我有一些需要填充的数据库表。

书 (1,n) - (0,n) 类型

现在,如果我想插入流派记录,我首先需要编写一个测试以确保所有内容都按应有的方式插入(或者我错了吗?)

现在的问题是我不知道如何访问我的数据库,因为它是由框架管理的。

我唯一能找到的是 LiipFunctionalTestBundle https://github.com/liip/LiipFunctionalTestBundle,它在我每次运行测试时都会创建和恢复一个临时数据库。我已经按照说明设置了所有内容。

编辑:我的 app/config/config_test.yml 现在看起来像这样:

所以现在我有一个 GenreTest 类:
Liip 没有文档,所以我只是尝试了这样的方法。

phpunit -c 网页/

PDOException:找不到驱动程序/.../Mangress/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:36 /.../Mangress/vendor/doctrine/dbal/lib/Doctrine/DBAL /Driver/PDOSqlite/Driver.php :60 /.../Mangress/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:350 /.../Mangress/vendor/doctrine/dbal/lib/Doctrine /DBAL/Connection.php:949 /.../Mangress/vendor/doctrine/orm/lib/Doctrine/ORM/UnitOfWork.php:306 /.../Mangress/vendor/doctrine/orm/lib/Doctrine/ORM /EntityManager.php:355 /.../Mangress/app/cache/test/jms_diextra/doctrine/EntityManager_510128d0a5878.ph p:362 /.../Mangress/src/Qkprod/MangressBundle/Tests/Entity/GenreTest.php: 27 次失败!测试:3,断言:1,错误:1。

我遇到的最大问题是..我如何测试这样的东西?或者我什至测试数据库通信?通过自定义实现来伪造数据库通信对我来说似乎不是一个好主意,因为它也会在生产环境中使用 ORM 和 Doctrine。

对不起..这里原来是一本小小说。

0 投票
2 回答
483 浏览

unit-testing - 当我加载夹具时,Symfony2 与 LiipFunctionalTestBundle 错误

我已经安装了 LiipFunctionalTestBundle 并从昨天开始尝试使用它,但我遇到了一个错误,我不知道如何解决它。

我使用文档(config_test)中描述的基本配置:

我在我的包中创建了一个简单的测试文件,只是为了知道我的数据库是否已加载:

当我使用 $this->loadFixtures(array()); 它工作正常,所以我可以从一个空数据库开始(用我的模式初始化)但是当我替换它并尝试使用一个夹具时,我有一个这样的错误:

$this->loadFixtures(array('\Blabla\MyBunble\DataFixtures\ORM\LoadUserData'));

现在我有这个错误:

我是测试新手,如果有人使用此捆绑包并作为提示,我将不胜感激:)

谢谢

0 投票
1 回答
61 浏览

symfony - 尽管存在内容,但功能测试失败

在下面的功能测试中,文本“Glenshire”存在的断言失败,即使echo $client->getResponse()->getContent();包括的输出

前两个断言是正确的。没有重定向。

考试

夹具(使用 LiipFunctionalTestBundle)

0 投票
2 回答
1930 浏览

symfony - Symfony2 测试:fixture 和外键问题

我正在使用 Symfony 和 Doctrine 开发一个项目,但我的测试有问题。我正在使用 Fixtures 为测试加载数据,并且我的一些实体之间存在关联。我第一次使用空数据库表运行测试时,测试完美地成功。但是当我再次运行测试时,我得到了一个错误:

Doctrine\DBAL\DBALException:执行“DELETE FROM Ent”时发生异常:

SQLSTATE [23000]:完整性约束违规:1451 无法删除或更新父行:外键约束失败(my_db. Ent, CONSTRAINT FK_FE5D1D1E727ACA70FOREIGN KEY ( parent_id) REFERENCES Ent( id))

错误的原因很明显:当另一行通过外键引用它时,无法删除该行。

如果我首先手动截断禁用外键约束的表并使用空表再次运行测试,则测试再次成功。但是每次运行测试时我都必须重复这一点。

所以问题是:有没有办法让 Symfony 或 PHPUnit 自动处理这个问题?

谢谢!

编辑:我忘了提到我正在使用 Liip\FunctionalTestBundle\Test\WebTestCase 类。

0 投票
1 回答
521 浏览

php - 功能测试:sqlite 不包含 soundex()

由于默认情况下该函数未在 pdo_sqlite 中编译,因此尝试构建需要 soundex() 的功能测试失败。正在使用 LiipFunctionalTestBundle 构建功能测试。

报告的错误是:

PDOException:SQLSTATE [HY000]:一般错误:1 没有这样的功能:Soundex

SQLite 文档说:

soundex(X) 函数 ... 默认情况下从 SQLite 中省略

我试过(来自php docs)$db->sqliteCreateFunction('soundex', 'sqlite_soundex', 1);在哪里

但得到

...sqlite_soundex 不可调用...

那么,如何编译一个版本的 Windowsphp_pdo_sqlite.dll呢?(SQLite 文档展示了如何编译“普通”sqlite.dll。)或者有更好的解决方案吗?

编辑 - 使用 MS Visual Studio 12 Express,编译时间选项未知!

0 投票
1 回答
1142 浏览

symfony - 使用 LiipFunctionalTestBundle 和夹具进行独立功能测试?

我正在向 Symfony2 项目添加测试。以前我使用相同的数据库devtest环境,它使用的 MySQL 数据库已经填充了与生产服务器上相同的数据。

由于某些测试依赖于以前的测试,因此这些测试独立地工作。例如,如果我有一个商店网站,我在购物车中添加了一个产品,然后从购物车中删除了该产品。所以我需要使用表单插入数据,然后才能删除它。

现在我想使用独立的功能测试,因为这是推荐的方式(Symfony2 的开发人员之一)

我已经正确配置了 LiipFunctionalTestBundle以在环境中使用 SQLite 数据库,test并且我已经开始使用DoctrineFixturesBundle添加固定装置。

但我不知道每次功能测试需要加载多少数据。我应该在测试开始时加载什么夹具?当实体因为表之间的关系而依赖于其他实体时,如何处理CRUD操作?

假设我正在开发一家商店,我想要一些测试:

  1. 用户在其购物车中添加了一些产品
  2. 用户从购物车中删除一件产品
  3. 用户订购剩余产品

我应该为每一步创建不同的夹具吗?这意味着我的固定装置需要以许多不同的状态存在:空购物车、订购一种产品的购物车等。这对我来说似乎是正确的,但非常耗时,所以我想知道我的想法是否有效。

0 投票
1 回答
1080 浏览

mysql - 在 LiipFunctionalTest 包中使用 YEAR、MONTH、DAY mysql 函数时出错

我正在使用mysql 的函数DAYMONTHhttp://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_year 和. 当我运行测试时,我得到:YEARLiipFunctionalTestBundle

SQLSTATE[HY000]: General error: 1 no such function: YEAR

最后,测试失败了。我想是因为这个。

这是我的config_test文件:

在我的代码中,我将它们用作:

如果我运行应用程序,我没有问题。

0 投票
2 回答
1388 浏览

sqlite - 在使用 SQLite 数据库时并行化功能测试

我在我的 Symfony2 项目中添加了许多测试,但现在有 53 个测试和 176 个断言大约需要一分钟。我试图减少这个时间,因为如果我启用代码覆盖率报告,它需要 15 分钟。

$ phpunit -c app/phpunit.xml.dist PHPUnit 4.3.5 由 Sebastian Bergmann 编写。
从 app/phpunit.xml.dist 读取配置
.......................... .............
时间:59.1 秒,内存:361.00Mb
OK(53 次测试,176 次断言)

我已正确配置LiipFunctionalTestBundle以在环境中使用 SQLite 数据库test(这是LiipFunctionalTestBundle推荐的):

app/config/config_test.yml

我已经用DoctrineFixturesBundle添加了固定装置。

现在我必须创建测试套件来启动几个 PHPUnit 实例。但是我看到了一个未来的问题:如果两个或多个 phpunit 实例在同一个 SQLite 文件中写入和读取数据,如何并行化测试(例如使用paratest )?

我可以将变量传递给 PhpUnit以更改kernel.cache_dir值并cache为每个 phpunit 实例创建一个目录。但它不能从命令行完成,所以如果我选择这个解决方案,我将不得不创建几个phpunit.xml.dist. 我正在寻找更方便的解决方案。

0 投票
6 回答
1917 浏览

symfony - 获取命令测试期间发送的电子邮件内容

在我的测试中,我调用了一些发送电子邮件的命令。我可以使用以下命令显示发送的电子邮件数量:

Symfony2 文档解释了如何在 Web 测试期间使用分析器获取电子邮件内容(在 Stack Overflow 上也有解释),但我不知道在没有 Web 请求时如何做同样的事情。

我使用了这些链接中提供的代码:

它返回此错误:

传递给 Symfony\Component\HttpKernel\Profiler\Profiler::loadProfileFromResponse() 的参数 1 必须是 Symfony\Component\HttpFoundation\Response 的实例,给定 null,在 .../vendor/symfony/symfony/src/Symfony/ 中调用Bundle/FrameworkBundle/Client.php 在第 72 行并定义 .../vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Profiler/Profiler.php:81 .../vendor/symfony/symfony/src/Symfony /Bundle/FrameworkBundle/Client.php:72 .../src/ACME/MyBundle/Tests/Command/EmailTest.php:94

错误来自这一行:

这似乎是合乎逻辑的,因为没有请求,所以没有响应。

我使用 Symfony 2.8.7。


这是我的 Swiftmailer 配置app/config_test.yml