我正在寻找一个更简单的测试框架。我看了一些phpunit和simpletest脚本,发现所需的语法甜头令人震惊。斯内普测试听起来不错,但也很麻烦。ApacheMore::测试太程序化了,即使对我来说也是如此。而symfony-lime试验在这方面是独一无二的。
类似BDD工具
http://everzet.com/Behat/#basics
非常好,但即使是两个抽象级别也比期望的高。
此外,到目前为止,我一直在使用一次性测试脚本。我想知道是否有一个测试框架/工具可以简化将它们用于自动化测试,而不是扔掉它们。具体来说,我想使用的是:
计算输出(打印/回显),甚至返回值/对象
序列化并将其保存为探测/比较数据
允许将比较输出分类为通过测试或失败
还收集头、警告或错误消息(也可能是预期的输出)
除了一些$test->assert()或test::fail()状态之外
基本上,我懒得去做测试框架的工作,手工预先定义或者布尔值计算并分类预期的输出。另外,我不认为不必要地将测试方法包装成类是有趣的,简单的include脚本或函数就足够了。此外,在预初始化的基础和测试环境中自动运行测试脚本并不难。
旧的.phpt脚本及其--expect--output接近,但仍然需要太多的手动设置。另外,我更喜欢使用Web GUI来运行测试。有没有这种测试脚本的现代排练?(加上一些头/错误/结果评估,最后是单元测试::断言方法)
编辑,我得举个例子。这是您典型的phpunit测试:
class Test_Something extends PHPUnit_Test_Case_Or_Whatever {
function tearUp() {
app::__construct(...);
}
function testMyFunctionForProperResults() {
$this->assertFalse(my_func(false));
$this->assertMatch(my_func("xyzABC"), "/Z.+c/");
$this->assertTrue(my_func(123) == 321);
}
}
相反,我想使用简单的PHP和较少混合的测试API:
function test_my_function_for_proper_results() {
assert::false(my_func(false));
print my_func("xyz_ABC");
return my_func(123);
}
好吧,这实际上是三个测试合二为一。但要强调的是:第一个版本需要手动测试。我想要的是将测试数据发送/返回到测试框架。比较结果是框架的任务,而不仅仅是用勺子喂牛。或者设想我得到一个膨胀的数组结果或对象链,我不想在测试脚本中手动列出它。