Поэтому я использую PHPUnit
в своей установке WordPress для тестирования пользовательских функций, написанных для плагина.
Я могу использовать классы, которые пишу эффективно, через тестовые классы, которые я ' Однако, когда я пытаюсь использовать include_once
или require_once
в тестовом файле, чтобы ввести некоторые функции, которые не являются методами класса, тестовый файл не распознает функцию.
Для Например, вот и пример тестового класса, который я написал: test-eng. php
function engage() {
return "Engage";
}
А вот файл с функцией, которую я пытался импортировать: eng. php
class Test_Enagage extends WP_UnitTestCase {
public function test_engage() {
$test_url = getcwd() . "/engage.php";
include_once($test_url);
echo engage();
}
}
Я также пытался импортировать файл eng. php вверху файла перед объявлением класса как показано ниже: test-eng. php
$test_url = getcwd() . "/engage.php";
include_once($test_url);
class Test_Enagage extends WP_UnitTestCase {
public function test_engage() {
echo engage();
}
}
Но в любом случае я получаю ошибку в консоли, когда запускаю phpunit
:
Произошла 1 ошибка:
1) Test_Enagage :: test_engage Ошибка: вызов неопределенной функции включается ()
Так что это не Признавая, что эта функция даже существует.
Опять же, я могу создать тестовый класс в этом файле, который имеет метод eng, например:
class Engage {
public function engage() {
echo "Engage";
}
}
, и тестовый файл вызывает класс и Метод без проблем и тесты пройдены.
Вот моя структура папок:
plugins
-myplugin
--engage.php
--tests
---test-engage.php
и функция getcwd()
возвращает путь к myplugin
(проверяется простым оператором echo
в верхней части test-engage.php
файла)
У кого-нибудь есть какие-либо советы о том, что здесь может пойти не так?