php - 使用自定义框架从目录运行 PHPUnit 测试

标签 php jenkins phpunit

对于我们的项目,我在 PHPUnit 框架之上创建了一个框架,它可以帮助我们完成一些编写单元测试的常见任务。

这个自定义框架继承自 PHPUnit_Framework_TestCase,然后修改了 mySetup() 并为我们的代码添加了一堆有用的函数。

<?php

class OurUnitTestFramework extends PHPUnit_Framework_TestCase {

    public $dbMock;
    protected function mySetup (..) { ... }
    protected function testHelper () { ... }

}
?>

现在在我们的测试代码中,我们只需扩展 OurUnitTestFramework,然后编写测试。

<?php 
require_once ("OurUnitTestFramework");
class DatabaseConnectionTest extends OurUnitTestFramework {
     parent::setUp (..) { ... }
     public function testSomeThing () { ... }
     public function testSomeOtherThing () { ... }

}
?>

到目前为止,我们一直在通过 Jenkins 运行所有单元测试,它仍然运行良好,但现在当我们尝试在文件夹中运行测试时,它失败了。文件夹/子文件夹内的所有测试都成功运行,但有一个失败:

[sumit@dev model]$ phpunit database
PHPUnit 3.5.14 by Sebastian Bergmann.

F........

Time: 0 seconds, Memory: 10.50Mb

There was 1 failure:

1) Warning
No tests found in class "OurUnitTestFramework".


FAILURES!
Tests: 9, Assertions: 30, Failures: 1.

我有一个目录数据库,它有子目录,所有测试都从该文件夹及其子文件夹通过,但我从 OurUnitTestFramework 失败,说在这个自定义框架中没有找到测试。所以我无法理解为什么 phpunit 正在对测试文件中包含/扩展的文件运行单元测试?

我们可以简单地选择忽略这个错误,但我想知道这样离开是否可以,或者我需要配置什么才能让它通过。

谢谢

最佳答案

将“我们的 UnitTestFramework”设为抽象类。

关于php - 使用自定义框架从目录运行 PHPUnit 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10571931/

相关文章:

php - 多个数组显示在一张表中

PHP - 动态页面 - 为每个动态页面使用单独的 CSS 文件

php - 使用类别名称与类别 ID 作为传递给 $_GET 的值

PHP单元。错误 : No code coverage driver is available.(安装了 xdebug)

PHP/MySQL : If Else condition doesn't work as expected

jenkins - 使用 build.sbt 中的 Jenkins 内部版本号通过 sbt-native-packager 构建 RPM

jenkins - 无法 ssh 到 jenkinsci/ssh-slave 的 docker 容器

jenkins - 当需要运行管道时,错误 WorkflowScript : 8: Expected one of "steps", "stages"或阶段 "parallel"为 "check out scm"

PHPUnit 测试失败,因为文件路径位置不正确

zend-framework - Zend Framework 中具有哈希元素的单元测试表单