【发布时间】:2014-03-05 05:13:51
【问题描述】:
查看laravel testing documentation,您会了解我喜欢在工作台中使用的所有很酷的助手。
很遗憾,我做不到。
Illuminate\Foundation\Testing\TestCase 从包目录运行我的测试时似乎不可用,因此我无法扩展它。
<?php namespace Acme\Foo;
class TestCase extends \Illuminate\Foundation\Testing\TestCase {
/**
* Creates the application.
*
* @return \Symfony\Component\HttpKernel\HttpKernelInterface
*/
public function createApplication()
{
$unitTesting = true;
$testEnvironment = 'testing';
return require __DIR__.'/../../../../bootstrap/start.php';
}
}
PHP Fatal error: Class 'Illuminate\Foundation\Testing\TestCase' not found in
/Applications/MAMP/htdocs/Webseiten/acme/workbench/acme/foo/tests/TestCase.php on line 3
我认为这不是正确的方法,无论如何都应该这样做......
我已经找到了orchestral/testbench,但我不确定使用它是否是个好主意。它似乎需要整个 laravel 框架,这对我来说没有意义吗? (一个包应该扩展一个 laravel 安装而不是第二次添加框架!?)
【问题讨论】:
-
它添加了整个框架,因为如果你将包推送到 github 并在 travis-ci 上运行它,那么它就会丢失。
-
所以将
"laravel/framework": "4.1.*"添加到包 composer.json"require-dev"将是一个好习惯吗? -
添加它是为了确保当你需要 2.0 时,它会加载 laravel 4.0,当你加载 2.1 时,它会加载 laravel 4.1 等等。它有什么不同吗?可能仅适用于仅在工作台上使用它的人,但在一个应用程序中再次加载两个作曲家供应商仍然是一个坏主意。在这个阶段,我并没有真正专注于支持导致 github.com/orchestral/testbench#working-with-workbench 和 github.com/orchestral/testbench/issues/29 等问题的工作台
-
好的,我明白了。所以如果我只是
"require-dev""laravel/framework": "4.1.*"它可能不会工作。testbench是否可以解决这些问题,但目前在 4.1 上表现不佳...有什么好的选择吗?使用 travis-ci 测试开发 laravel 包的最佳方法是什么——不要管工作台,做完全不同的事情? -
我的建议是在了解包开发的早期阶段使用工作台。一旦你熟悉了它,就将它移出并作为一个独立的包继续工作,原因有很多。
标签: laravel laravel-4 phpunit workbench