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 文件夹本身
  • @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