oblik / kirby-tester
此包已被废弃,不再维护。作者建议使用https://getkirby.com/docs/cookbook/setup/monolithic-plugin-setup包。
用于在测试时加载 Kirby 和切换根目录的小工具。
1.2.1
2019-09-10 09:56 UTC
This package is auto-updated.
Last update: 2022-08-23 06:00:51 UTC
README
允许您通过自动加载 Kirby 并可选地更改其根目录来轻松编写插件测试。
⚠ 已弃用!
您不需要插件来更改根目录。您的插件仓库可以作为插件测试站点的双重用途。有关详细信息,请查看单体插件设置。
安装
将包安装到您的插件文件夹(推荐)或网站文件夹中
composer require oblik/kirby-tester --dev
用法
该实用程序期望您在插件中设置以下目录结构
my-plugin
└── tests
├── roots
│ ├── blueprints
│ ├── config
│ ├── content
│ ├── templates
│ └── ...
└── bootstrap.php
在 tests/roots
中的任何有效根文件夹都将用作 Kirby 根。如果找到 tests/bootstrap.php
脚本,它将在加载 Kirby 后包含。这可以用于运行一些初始化。
作为插件依赖项
当在您的插件的 vendor
文件夹中安装时,测试器会自动确定它所在的插件以及 Kirby 根的位置。它还会通过其引导脚本加载 Kirby,并基于您的文件夹设置创建一个新的 Kirby 实例。
如果您还希望使用具有修改后的 Kirby 根目录的仪表板,您可以像这样更改您的网站的 index.php
require 'site/plugins/my-plugin/vendor/autoload.php'; echo kirby()->render();
注意:如果您也安装了 PHPUnit,您可以直接运行测试。由于 PHPUnit 运行 Composer 自动加载器,因此此包将被加载,这将也会加载 Kirby。
作为网站依赖项
当在您的网站的 vendor
文件夹中安装时,您需要使用您提供的全局 kirbytest()
函数
kirbytest(string $input)
@param $input
可以是插件名称或您 tests 文件夹的路径- 如果是一个插件名称,则 tests 文件夹路径将是
site/plugins/$input/tests
- 如果是一个相对路径或绝对路径,则应指向 tests 文件夹本身
- 如果是一个插件名称,则 tests 文件夹路径将是
@returns
一个 Kirby 实例,您可以使用其render()
方法进行链式调用;如果没有找到 tests 文件夹,则返回null
在您的网站的 index.php 中,您可以使用它如下
require 'kirby/bootstrap.php'; echo kirbytest('my-plugin')->render();
引导钩子
您可以使用 tests/bootstrap.php
通过定义钩子在脚本执行的各个点执行各种操作
return [ 'beforeLoad' => function () { echo 'before Kirby vendor autoload'; }, 'afterLoad' => function () { echo 'after Kirby vendor autoload'; }, 'beforeInit' => function () { echo 'before Kirby instance'; }, 'afterInit' => function ($kirby) { echo 'after Kirby instance'; } ];
默认情况下,钩子只在 PHP 从 CLI 运行时(即测试运行时)运行。如果您希望它们始终运行,请在上述配置中将 always
设置为 true
。