首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Composer和自动化单元测试

Composer和自动化单元测试
EN

Stack Overflow用户
提问于 2015-05-04 16:22:57
回答 1查看 2.1K关注 0票数 1

我在我自己/公司的项目中使用composer进行部署,等等。我已经使用php单元测试,但现在我也想在项目安装或更新时添加自动单元测试,即我想在composer pre-autoload-dump事件上执行phpunit。请参阅https://getcomposer.org/doc/articles/scripts.md

根据单元测试的成功,我希望继续或停止我的包的安装过程。因此,如果单元测试失败,则不应安装该版本。

总体上,您建议如何继续实现此意图?

我的composer.json看起来像这样:

代码语言:javascript
复制
{
    "name": "Cravid/event",
    "require": {
        "php": ">=5.3.0",
        "phpunit/phpunit": "4.*"
    },
    "autoload": {
        "psr-4": {"Cravid\\Event\\": "src/Gkm/Event"}
    },
    "autoload-dev": {
        "psr-4": {"Cravid\\Event\\": "tests/Gkm/Event"}
    },
    "extra": {
        "branch-alias": {
            "dev-master": "1.0.x-dev"
        }
    },
    "scripts": {
        "pre-autoload-dump": "phpunit"
    }
}

Git是指定的版本控制系统。

EN

回答 1

Stack Overflow用户

发布于 2015-05-05 04:02:30

你的意图可能会制造大量的麻烦。

你说你想在安装之前运行测试-但是当在pre-autoload-dump事件中运行一些东西时,已经安装了一些东西,即你将要测试的软件的版本。如果该软件未通过测试怎么办?然后你就会被一个部分安装的软件卡住了,这个软件没有正确地转储它的自动加载器。

此外,不转储自动加载器意味着您无法使用您的软件。你不能测试它。如果您在开发机器上运行composer install以获取错误副本进行调查,则自动加载也将停止。

我认为使用Composer解决所有问题并不是一个好主意。Composer是管理软件依赖性的一个很好的工具。为了做到这一点,它提供了几个钩子,允许即使是奇怪的软件需求在这里和那里添加一点,但通常你不应该需要这些。

要创建具有自动测试的持续集成或持续交付之类的东西,您必须使用Composer之外的东西。我建议使用Phing来定义某些步骤需要完成的任务,并可能使用Jenkins的一个实例来允许执行作业。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30025650

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档