ingenerator/koharness

通过构建干净的应用容器为 Kohana 模块创建测试驱动程序

v0.1.0 2013-08-01 00:42 UTC

This package is auto-updated.

Last update: 2024-09-19 09:04:47 UTC


README

koharness 是一个非常简单的包,可以帮助您为 Kohana 模块提供一个干净的测试环境。一旦启用,它将生成一个包含您的模块及其依赖的基本 Kohana 应用程序,您可以用它作为运行测试的基础。

与标准 Kohana 测试引导程序不同,koharness 允许您控制模块的加载顺序,这对于旨在扩展其他模块的模块可能至关重要。

将 koharness 添加为项目依赖项

将 koharness 添加到您的项目的最简单方法是通过 composer。在您的模块文件夹根目录中创建一个 composer.json 文件,如下所示

{
	"require-dev": {
		"ingenerator/koharness" : "*"
	}
}

确保您的 .gitignore 文件包含以下行

/vendor
/modules

在您的模块根目录中运行 composer install --dev

配置模块依赖项

您的模块至少需要 Kohana 核心 和 Kohana unittest 模块才能运行 - 并且可能还需要其他模块。我们建议在 composer.json 中跟踪这些依赖项

  • 目前核心 Kohana 存储库没有定义 composer 包,因此您应该使用 inGenerator 分支
{
	"require": {
		"kohana/core":     "dev-ingenerator-master",
		"kohana/unittest": "dev-ingenerator-master"
	},
	"repositories": [
		{"type": "vcs", "url": "https://github.com/ingenerator/kohana-core"},
		{"type": "vcs", "url": "https://github.com/ingenerator/kohana-unittest"}
	]
}

或者,您可以在模块的 composer.json 中定义自定义包,以跟踪主 Kohana 存储库中的特定 git 修订版本。

或者,添加一个 shell 脚本到您的项目中,以克隆所需的存储库并将检查点复制到您的本地磁盘。

无论您如何将依赖项获取到您的机器上,您都需要配置 koharness 以将其包含在 Kohana 安装的活动模块列表中。您可以通过在存储库根目录中创建一个 koharness.php 文件来完成此操作

// {my-module-root}/koharness.php
return array(
	'modules' => array(
		'my-module' => __DIR__,
		'unittest' => __DIR__.'/modules/unittest' // Or any other way you want to specify the path to this module
	),

	// You can specify where to look for Kohana core - the default is {my-module-root}/vendor/kohana/core
	'syspath' => '/some/path/to/kohana/core',

	// You can specify where to create the harness application - the default is /tmp/koharness
	'temp_dir' => '/home/me/testing'
);

构建您的驱动程序

要构建您的驱动程序,只需从您的模块根目录运行 vendor/bin/koharness(假设您已将 composer bin-dir 属性保留为默认值。这将

  • 清除指定的临时目录
  • 在临时目录中创建标准通用的 Kohana 目录结构
  • 将 Kohana 核心目录链接到 {temp}/system
  • 将每个模块链接到 {temp}/modules/{name}
  • 将您的模块的供应商路径链接到 {temp}/vendor
  • 使用您的模块列表自定义通用应用程序引导程序,并将其输出到 {temp}/application/bootstrap.php

运行测试

一旦您构建了您的驱动程序,您可以使用您喜欢的任何工具运行测试。例如,您可以使用 phpunit

cd /tmp/koharness
vendor/bin/phpunit --bootstrap=modules/unittest/bootstrap.php modules/unittest/tests.php

许可

版权所有(c)2013,inGenerator Ltd 保留所有权利。

在满足以下条件的情况下,允许重新分发和使用源代码和二进制形式,无论是否修改:

  • 源代码重新分发必须保留上述版权声明、本条件列表和以下免责声明。
  • 二进制形式的重新分发必须在不修改的情况下复制上述版权声明、本条件列表和以下免责声明,包括在分发提供的文档和其他材料中。
  • 未经事先书面许可,不得使用 inGenerator Ltd 的名称或其贡献者的名称来认可或推广源自本软件的产品。

本软件由著作权所有者和贡献者提供,"按原样"提供,并明确或暗示放弃包括但不限于适销性和特定用途适用性的任何明示或默示保证。在任何情况下,著作权所有者或贡献者均不对因使用本软件而产生的任何直接、间接、偶然、特殊、示范性或后果性损害(包括但不限于替代商品或服务的采购;使用、数据或利润的损失;或业务中断)承担责任,无论该损害是由于何种原因造成的,无论在何种责任理论下,包括合同责任、严格责任或侵权责任(包括疏忽或其他),即使已告知可能发生此类损害。