typisttech / codeception-composer-project-module

为Codeception测试创建可丢弃的Composer项目

0.1.2 2020-12-06 21:54 UTC

README

Codeception Composer Project Module

Packagist Version Packagist Downloads PHP from Packagist CircleCI license Twitter Follow @TangRufus Hire Typist Tech

为Codeception测试创建可丢弃的Composer项目。

Typist Tech用爱心打造。

Codeception Composer Project Module是一个开源项目,完全免费使用。

然而,维护和发展新功能所需的努力量无法在没有适当财务支持的情况下持续。如果您有能力,请考虑通过以下链接捐赠:

GitHub via Sponsor Sponsor via PayPal More Sponsorship Information

为Codeception测试创建可丢弃的Composer项目。

为什么?

因为在更真实的环境中测试您的Composer插件是件好事。

目标,或者这个模块能做什么?

为Codeception测试创建可丢弃的Composer项目。

在每个测试之前

  • 将虚拟的Composer项目文件复制到临时目录中
  • 配置本地包路径
  • 通过Composer安装包
  • 切换到临时目录

在每个测试之后

  • 删除临时目录

安装

composer require --dev typisttech/codeception-composer-project-module

配置

在您的Codeception配置文件中(例如:acceptance.suite.ymlacceptance.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期间传递的额外标志。

见:$ composer help install

symlink

可选 单引号中的布尔值

示例:'false'

默认:'true'

本地包是否需要创建符号链接。

见:Composer文档

repositoryPaths

可选 字符串数组

示例

- 'tests/_data/dummy'
- 'tests/_data/another-dummy'

默认:根目录(codeception.yml所在的目录)。

相对于根目录(codeception.yml所在的目录)的本地包路径。

见:Composer文档

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"
}

当测试太慢时怎么办?

注意:这些方法并不适用于所有用例。

您有使用此 composer 插件的真实生活示例吗?

请看这里

在这里添加您的 自定义

您会添加对旧 PHP 版本的支持吗?

永远不会!此插件仅适用于 活跃支持的 PHP 版本

不要在 已停用仅提供安全修复 的 PHP 版本上使用。

看起来很棒。在哪里可以找到更多类似的好东西

我在哪里可以给 5 星级评论?

谢谢!很高兴你喜欢它。让某人使用这个项目很重要。请考虑

测试

composer test
composer style:check

反馈

请提供反馈! 我们希望使这个项目尽可能有用。请 提交问题 并指出您喜欢和不喜欢的地方,或者重新构建项目并 发送拉取请求没有问题太小。

安全漏洞

如果您在这个项目中发现安全漏洞,请通过电子邮件发送给我们 codeception-composer-project-module@typist.tech。所有安全漏洞都将得到及时解决。

鸣谢

Codeception Composer 项目模块 是一个 Typist Tech 项目,由 Tang Rufus 维护,他是 雇佣 的自由职业开发者。

贡献者完整列表可在此处找到。

许可证

Codeception Composer Project Module 采用MIT许可证发布。