您好我只是在我的laravel项目中下载phpunit.phar(我已经部分开发)。我开始做一个简单的
php phpunit.phar
但它输出的内容就像整个视图文件一样:
{"error":{"type":"ErrorException","message":"Undefined variable: currency","file":"C:\\wamp\\www\\project.dev\\app\\views\\front\\settings.php","line":79}}
这甚至不是测试,代码在浏览器中测试时有效。我也在使用laravel附带的默认phpunit配置文件。
编辑:代码
<label class="radio">
<input type="radio" name="settings_currency" id="set_curr_<?=$currency->id?>" value="<?=$currency->id?>" checked>
<span class="symbol"><?=$currency->symbol?></span>
<?=$currency->name?>
<span><?=$currency->abbr?></span>
</label>
答案 0 :(得分:0)
你不能简单地运行PHPUnit并期望它测试一些有用的东西。你必须配置它!
运行时,PHPUnit扫描PHP文件的当前目录和所有子目录,包括它们并检查是否有任何可以运行的测试类。包含您的视图文件将在没有上下文的情况下执行它们,即您将从任何已使用但当前未定义的变量中获得完整的回显和通知。
作为入门者,在启动PHPUnit的同一目录中创建“phpunit.xml”。关于如何创建内容的Read the documentation。首先,您需要使用<testsuites>
元素指定要扫描测试类的目录。
答案 1 :(得分:0)
代码在浏览器中测试时有效。
嗯,正如您可能想象的那样,只有一些“代码在浏览器中工作”并不意味着代码没有错误。
再次看到错误消息:
未定义的变量:货币
所以你在这里遇到的问题很快就会解释为:PHPUnit对你的代码比你更严格。它会标记您过去不关心的警告,例如 Undefined Variables 。
现在了解如何定义变量以及为什么使用 未定义的变量 肯定是 你的问题 然后您将很容易理解为什么PHPUnit会检查这些内容。
您可以通过降低PHPUnit在运行测试时应用的质量标准来降低您的期望:Appendix C. The XML Configuration File
然而,使用默认配置,它只是给你那个错误,你应该修复它。 PHPUnit不仅运行测试,还执行一些代码并处理与执行代码相关的问题,如获取警告,错误和通知。
如果您执行 phpunit,那么您需要处理这个问题。否则,只需退后一步,不要执行它:)
我也在使用laravel附带的默认phpunit配置文件。
是的,你是。那是为什么运行测试。这就是你使用 Undefined Variables 的行为的原因。
参见: