typisttech / codeception-composer-project-module
为Codeception测试创建可丢弃的Composer项目
Requires
- php: ^7.3 || ^8.0
- spatie/temporary-directory: ^1.3
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-20 00:00:59 UTC
README
Codeception Composer Project Module
为Codeception测试创建可丢弃的Composer项目。
由Typist Tech用爱心打造。
Codeception Composer Project Module是一个开源项目,完全免费使用。
然而,维护和发展新功能所需的努力量无法在没有适当财务支持的情况下持续。如果您有能力,请考虑通过以下链接捐赠:
为Codeception测试创建可丢弃的Composer项目。
为什么?
因为在更真实的环境中测试您的Composer插件是件好事。
目标,或者这个模块能做什么?
为Codeception测试创建可丢弃的Composer项目。
在每个测试之前
- 将虚拟的Composer项目文件复制到临时目录中
- 配置本地包路径
- 通过Composer安装包
- 切换到临时目录
在每个测试之后
- 删除临时目录
安装
composer require --dev typisttech/codeception-composer-project-module
配置
在您的Codeception配置文件中(例如:acceptance.suite.yml或acceptance.yml)
这是最小配置
modules: enabled: - ComposerProject: projectRoot: 'path/to/composer/project' depends: - Cli - Filesystem
这是完整配置
modules: enabled: - ComposerProject: projectRoot: 'path/to/composer/project' composerInstallFlags: '--no-interaction --quiet' symlink: 'true' repositoryPaths: - 'tests/_data/dummy' - 'tests/_data/another-dummy' depends: - Cli - Filesystem
projectRoot
必需 字符串
示例:tests/_data/project
Composer项目目录的路径,相对于根目录(codeception.yml所在的目录)。此目录必须包含一个composer.json文件。
composerInstallFlags
可选 字符串
示例:--no-interaction --verbose --no-ansi
默认:--no-interaction --quiet
在composer install期间传递的额外标志。
symlink
可选 单引号中的布尔值
示例:'false'
默认:'true'
本地包是否需要创建符号链接。
repositoryPaths
可选 字符串数组
示例
- 'tests/_data/dummy' - 'tests/_data/another-dummy'
默认:根目录(codeception.yml所在的目录)。
相对于根目录(codeception.yml所在的目录)的本地包路径。
Typist Tech 准备为您构建下一个出色的WordPress网站。 雇佣我们!
API
amInTmpProjectDir
切换到临时项目目录
- @return void
示例
$I->amInTmpProjectDir();
runComposerCommand
运行一个Composer命令
- @param string $command
- @param bool $failNonZero Optional. Default: true Fails If exit code is > 0.
- @return void
示例
// This is equivalent to running `$ composer update --verbose` in the console. $I->runComposerCommand('update --verbose');
runComposerInstall
运行composer install,带有composerInstallFlags
- @return void
示例
$I->runComposerInstall();
getTmpProjectDir()
获取临时项目目录的路径
注意:返回值可能是一个符号链接。
- @return string
示例
$I->getTmpProjectDir(); // To ensure real path: $tmpProjectDir = $I->getTmpProjectDir(); $tmpProjectDir = realpath($tmpProjectDir);
常见问题解答
支持哪些Composer版本?
都支持v1和v2。
我想看看Codeception Composer Project Module为我做了什么?
使用 --debug 标志 运行测试。
Codeception Composer 项目模块会将调试信息记录到控制台。
当 composer install 失败或没有安装最新版本时怎么办?
无法将您的需求解析为可安装的包集。
{
"require": {
"dummy/dummy": "*"
},
"minimum-stability": "dev"
}
当测试太慢时怎么办?
- 启用 符号链接
- 将
--prefer-dist添加到 composerInstallFlags - 将
"prefer-stable": true添加到composer.json
注意:这些方法并不适用于所有用例。
您有使用此 composer 插件的真实生活示例吗?
请看这里
在这里添加您的 自定义
您会添加对旧 PHP 版本的支持吗?
永远不会!此插件仅适用于 活跃支持的 PHP 版本。
不要在 已停用 或 仅提供安全修复 的 PHP 版本上使用。
看起来很棒。在哪里可以找到更多类似的好东西
- Typist Tech 的博客 上的文章
- wp.org 上的 Tang Rufus 的 WordPress 插件
- Typist Tech 的 GitHub 个人资料 上的更多项目
- 关注 Typist Tech 的通讯
- 关注 Tang Rufus 的 Twitter 账号
- 雇佣 Tang Rufus 来构建您的下一个出色的网站
我在哪里可以给 5 星级评论?
谢谢!很高兴你喜欢它。让某人使用这个项目很重要。请考虑
- 推文 一些提及 @TangRufus 的好话
- ★ star GitHub 仓库
- 👀 watch GitHub 仓库
- 编写教程和博客文章
- 雇佣 Typist Tech
测试
composer test
composer style:check
反馈
请提供反馈! 我们希望使这个项目尽可能有用。请 提交问题 并指出您喜欢和不喜欢的地方,或者重新构建项目并 发送拉取请求。 没有问题太小。
安全漏洞
如果您在这个项目中发现安全漏洞,请通过电子邮件发送给我们 codeception-composer-project-module@typist.tech。所有安全漏洞都将得到及时解决。
鸣谢
Codeception Composer 项目模块 是一个 Typist Tech 项目,由 Tang Rufus 维护,他是 雇佣 的自由职业开发者。
贡献者完整列表可在此处找到。