如何在无类 php 文件上使用 PHPUnit Skeleton Generator?
Posted
技术标签:
【中文标题】如何在无类 php 文件上使用 PHPUnit Skeleton Generator?【英文标题】:How to use PHPUnit Skeleton Generator on classless php files? 【发布时间】:2014-12-04 23:52:05 【问题描述】:我从这篇文章中听说了 phpUnit 能够自动生成基础测试文件:http://www.sitepoint.com/advanced-phpunit-testing-annotations-and-mocking/
(请注意,PHPUnit-skelgen 现在是与 PHPUnit 项目的其余部分分开的实用程序,它的源代码可以在这里找到:https://github.com/sebastianbergmann/phpunit-skeleton-generator)
如果我在以下代码中使用 phpunit-skelgen:
<?php
class TestClass
/**
* @assert (1, 2) == 3
*/
function add($a, $b)
return $a + $b;
?>
通过运行phpunit-skelgen generate-test TestClass
,我收到了以下测试方法(以及通常的 phpunit 样板):
/**
* Generated from @assert (1, 2) == 3.
*
* @covers TestClass::add
*/
public function testAdd()
$this->assertEquals(
3,
$this->object->add(1, 2)
);
我的问题是,是否可以让 phpunit-skelgen 为没有类的 php 文件创建测试?例如,我有一个相当大的文件,其中包含几个全局操作函数,我想让 phpunit-skelgen 为其创建测试,但是如果不将现有代码包装在一个类中,我看不到这样做的方法。
编辑:如果我尝试在具有函数但没有类的 php 文件上运行 phpunit-skelgen,这是输出:
theguy@workpc ~/Projects/PHPUnitSamples $ phpunit-skelgen generate-test noClass
phpunit-skelgen 2.0.1 by Sebastian Bergmann.
[RuntimeException]
Could not find class "noClass" in "/home/perry/Projects/PHPUnitSamples/noClass.php".
generate-test [--bootstrap="..."] class [class-source] [test-class] [test-source]
有人有什么建议吗?
另外,我注意到最近关于 phpunit-skelgen 的文档非常稀缺。有谁知道一些很好的教程或手册,或者自从 phpunit-skelgen 被移到它自己的单独项目中以来已经写过的东西?
【问题讨论】:
【参考方案1】:文档可能很少,但第一行非常清楚目的:
phpunit-skelgen 是一个可以从生产代码类生成骨架测试类的工具,反之亦然。
(添加了突出显示)
所以答案是,这是不可能的。
【讨论】:
以上是关于如何在无类 php 文件上使用 PHPUnit Skeleton Generator?的主要内容,如果未能解决你的问题,请参考以下文章
我无法使用 phpunit 进行测试:无法打开文件“autoload.php”