今天我尝试在自己开发的MVC框架中实现PHPUnit。当我尝试运行我写的测试用例时,他总是抱怨他不知道类等的事实。所以我试着用一堆包含加载一个帮助文件,然后它给了我一个不同的错误。
Fatal error: Class 'MysqliDb' not found in /home/ansit-com/workspace/abrechnung/mvc/model/Model.php on line 7
它位于database.php类中。
我的帮助文件的代码如下所示。
<?php
include('controllers/Controller.php');
include('model/Model.php');
include('view/view_class.php');
include('view/libs/Smarty.class.php');
include('configs/config.inc.php');
include('libs/database.php');
include('libs/PrefixCache.php');
include('libs/helper.php');
include('libs/language.php');
include('libs/decimal_mark.php');
include('libs/validation.php');
include ('libs/permissionCheck.php');
include('theme/configs/constant.php');
?>
我已经尝试更改路径名,我有以下结构: 项目名称/控制器 项目名称/型号 projectname / tests(我的助手和所有测试所在的文件)
的结构这是我第一次使用单元测试,在互联网上我只找到了如何在现有框架中进行单元测试的示例。 如果我忘了在这里提一下,请告诉我。
答案 0 :(得分:0)
项目根目录中是否有phpunit.xml
个文件?如果是这样,您可以在bootstrap
元素中指定一个phpunit
属性,您可以使用帮助文件设置该属性:
<?xml version="1.0" encoding="UTF-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.6/phpunit.xsd"
bootstrap="bootstrap.php">
<testsuites>
<testsuite name="ProjectTestSuite">
<!-- List the folder(s) in which your tests are, here -->
<directory suffix=".php">./tests</directory>
</testsuite>
</testsuites>
</phpunit>
使用此文件,您可以从项目根目录运行phpunit
,它会自动从phpunit.xml
文件中提取设置。
还可以查看https://phpunit.de/manual/current/en/appendixes.configuration.html#appendixes.configuration.phpunit以获取更多配置选项。
答案 1 :(得分:0)
好的,我解决了这个问题。 我改变了所有路径到绝对路径。将所有包含更改为include_once因为我重新声明了某些类,现在它工作正常。