kalio/ezloremipsumbundle

Kaliop eZ-Lorem-Ipsum Bundle

支持包维护!
tanoconsulting

安装次数: 8,087

依赖项: 0

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 3

公开问题: 1

类型:symfony-bundle

1.6.0 2022-10-21 09:42 UTC

This package is auto-updated.

Last update: 2024-08-29 04:31:39 UTC


README

一个针对 eZPublish5 / eZPlatform 的包,用于大量生成示例/测试内容。

工作原理,30 行 yaml 代码

    -
        type: loop
        repeat: 5
        steps:
            -
                type: content
                mode: create
                content_type: folder
                parent_location: 2
                attributes:
                    name: "Folder [loop:iteration] - [faker:sentence(3)]"
                references:
                    -
                        attribute: location_id
                        identifier: parent_folder_loc
                        overwrite: true
            -
                type: loop
                repeat: 3
                steps:
                    -
                        type: content
                        mode: create
                        content_type: folder
                        parent_location: reference:parent_folder_loc
                        attributes:
                            name: "Folder [faker:unixTime]"

如上所述,这段代码将创建总共 20 个 '文件夹' 类型的内容,嵌套在 2 个级别中,每个顶级文件夹有 3 个子文件夹。顶级文件夹的名称包含 3 个随机的拉丁单词。

要求

  • eZPublish 2014.11 或更高版本或 eZPlatform
  • eZMigrationBundle 5.1.1 或更高版本
  • Faker,最初来自 FZaninotto
  • TCPDF 来自 tecnick.com

(所有这些都可以通过 composer 自动处理)

安装

  1. 通过 composer 获取包

    composer require kaliop/ezloremipsumbundle
    
  2. 在 Kernel 的 registerBundles() 方法中激活它

    public function registerBundles()
    {
        ...
        new \Kaliop\eZLoremIpsumBundle\EzLoremIpsumBundle()
    

使用方法

此包所做的所有事情就是为 Kaliop 迁移包提供一个名为 faker 的新引用解析器。

这意味着为了创建大量内容,您只需要设置并运行一个 '迁移'。迁移在以下地址有详细文档:https://github.com/kaliop-uk/ezmigrationbundle/https://github.com/kaliop-uk/ezmigrationbundle/tree/master/Resources/doc/DSL

'faker' 引用解析器旨在生成随机数据。它旨在支持 Faker 库的所有功能。以下是一些可以生成的数据类型:

  • 短语
  • 段落
  • 名字
  • 地址
  • 电话号码
  • 日期和时间
  • 电子邮件
  • 域名
  • 数字
  • 图像和文件

支持的完整数据列表在 https://fakerphp.github.io/ 上有文档。

支持的语法更详细的描述在 DSL 语言描述 中。

更多使用示例可以在 用于运行 CI 测试的迁移 中找到。

注意 当使用 image 提供程序时,存在已知问题,无法从远程服务下载图像文件。建议使用 picture 提供程序。

运行测试

此包使用 PHPUnit 运行功能测试。

在运行的 eZPublish / eZPlatform 安装上运行测试

要运行测试

export KERNEL_DIR=app (or 'ezpublish' for ezpublish 5.4/cp setups)
export SYMFONY_ENV=behat (or whatever your environment is)

bin/phpunit --stderr -c vendor/kaliop/ezworkflowenginebundle/phpunit.xml.dist

注意 测试不会模拟与数据库的交互,但会在其中创建/修改/删除许多类型的数据。因此,运行测试可能会导致留下陈旧/损坏的数据。建议使用专门的 eZPublish 安装或至少专门的数据库来运行测试套件。

为包设置专用测试环境

运行组件测试的一个更安全的选择是设置一个专用环境,类似于在GitHub Actions上运行测试套件时所使用的环境。优势很多:一方面,你可以从任何版本的eZPublish开始;另一方面,你将更有信心,任何你添加或修改的测试都将通过GitHub。缺点是,你需要Docker和Docker-compose,并且你将使用的环境将非常不同于标准的eZPublish设置!此外,构建这个环境需要相当多的磁盘空间和时间。

设置专用测试环境并在其中运行测试的步骤

git clone --depth 1 https://github.com/tanoconsulting/euts.git teststack
# if you have a github auth token, it is a good idea to copy it now to teststack/docker/data/.composer/auth.json

# this config sets up a test environment with eZPlatform 2.5 running on php 7.4 / debian bullseye
export TESTSTACK_CONFIG_FILE=Tests/environment/.euts.2.5.env

./teststack/teststack build
./teststack/teststack runtests
./teststack/teststack.sh stop

你还可以单独运行一个测试用例

./teststack/teststack runtests ./Tests/phpunit/01_CommandsTest.php

注意:第一次运行时这会花费一些时间,但后续运行会更快。注意:请确保有足够的磁盘空间。

如果你想手动运行命令,例如symfony控制台

./teststack/teststack console cache:clear

或者轻松地进入数据库shell提示符

./teststack/teststack dbconsole

或者命令行shell提示符,指向运行测试的Docker容器

./teststack/teststack shell

在Docker容器中运行的测试使用的是文件Tests/environment/.euts.2.5.env中指定的debian/php/eZPlatform内核版本,这是由环境变量TESTSTACK_CONFIG_FILE指定的。如果没有设置该环境变量的值,则会查找名为.euts.env的文件。如果不存在此类文件,则会使用一些默认值,你可以查看./teststack/README.md中的文档以了解它们是什么。如果你想针对eZ/php/debian的不同版本进行测试,请自由

  • 创建.euts.env文件,如果不存在的话
  • 向其中添加任何需要的变量(请参考文件teststack/.euts.env.example作为指导)
  • 重新构建测试堆栈
  • 以通常的方式运行测试

你甚至可以通过使用不同的env文件,并行保持多个测试堆栈可用

  • 创建一个文件.euts.env.local并向其中添加任何需要的环境变量,以一个独特的COMPOSE_PROJECT_NAME开始
  • 通过./teststack/teststack -e .euts.env.local build构建新的测试堆栈
  • 通过./teststack/teststack -e .euts.env.local runtests运行测试

感谢

非常感谢Crevillo对查看AliceBundle的建议,以及感谢FZaninotto完成了大量工作

License Latest Stable Version Total Downloads

Build Status Scrutinizer Code Quality Code Coverage