首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >排除在phpunit中加载某些测试

排除在phpunit中加载某些测试
EN

Stack Overflow用户
提问于 2016-07-26 10:58:28
回答 1查看 2.8K关注 0票数 8

我的一些测试用例使用自定义测试库。而且,这些测试案例非常缓慢。因此,我只想在构建服务器上运行它们,而不是在本地运行。我想在本地运行其他测试。

下面是目录结构。slow目录中的测试用例是应该排除的缓慢测试用例。

代码语言:javascript
复制
/tests/unit-tests/test-1.php
/tests/unit-tests/test-2.php
/tests/unit-tests/slow/test-1.php
/tests/unit-tests/slow/test-2.php
/tests/unit-tests/foo/test-1.php
/tests/unit-tests/bar/test-2.php

我尝试使用@group注释创建组。这是可行的,但问题是这些测试文件正在加载(测试没有执行)。由于它们需要未在本地安装的测试库,因此会产生错误。

创建phpunit.xml配置的最佳方法是,在默认情况下排除(甚至不加载)这些缓慢的测试,并在需要时执行?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-26 21:10:13

有两种选择:

  1. 在您的phpunit.xml中创建2套测试套装-一套用于CI服务器,一套用于本地开发
代码语言:javascript
复制
<testsuites>
    <testsuite name="all_tests">
        <directory>tests/unit-tests/*</directory>
    </testsuite>
    <testsuite name="only_fast_tests">
        <directory>tests/unit-tests/*</directory>
        <!-- Exclude slow tests -->
        <exclude>tests/unit-tests/slow</exclude>
    </testsuite>
</testsuites>

因此,在CI服务器上可以运行

代码语言:javascript
复制
phpunit --testsuite all_tests

和当地

代码语言:javascript
复制
phpunit --testsuite only_fast_tests

显然,您可以根据需要命名测试套件。

  1. 我认为更可取的方法是:
  • 创建phpunit.xml.dist并配置phpunit的默认执行(用于CI服务器和所有刚刚克隆的存储库)
  • 通过配置phpunit的本地执行来修改phpunit.xml (通过将<exclude>tests/unit-tests/slow</exclude>添加到默认测试套件)
  • phpunit.xml排除在版本控制之外。

来自文档

如果phpunit.xml或phpunit.xml.dist (按该顺序排列的)存在于当前工作目录中,并且--配置未被使用,则配置将自动从该文件中读取。

一些链接:

XML配置文件。测试套房

如何运行特定的phpunit xml测试套件?

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

https://stackoverflow.com/questions/38588029

复制
相关文章

相似问题

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