Включить проблемы при модульном тестировании - PullRequest
0 голосов
/ 07 июня 2019

Когда я занимаюсь модульным тестированием классов, мне нужно изменить пути включения, но сам сайт не будет работать.Таким образом, каждый раз, когда я тестирую, мне нужно изменить почти все пути включения в файлах, а после тестирования изменить их снова.Это, очевидно, не практично.

Я примерно понимаю, почему это происходит;потому что тестовые файлы не находятся в корневом каталоге.

Вопрос: Как я могу сохранить файлы модульных тестов в той же папке, что и тестируемые файлы, без необходимости изменять пути включения?

Я попытался определитьпостоянная PATH.Это также не сработало, потому что файл, определяющий константу, переопределяет ее каждый раз, когда он включается, что делает его бесполезным.

require_once 'database/CrudTest.php';
require_once 'UserModel.php';
require_once 'database/UserCrud.php';
use PHPUnit\Framework\TestCase;

class UserModelTest extends TestCase{
....

Чтобы проверить классы, я должен ставить '../' перед каждым включением в каждый файлнужен для теста.Затем удалите их после теста.

1 Ответ

0 голосов
/ 07 июня 2019

Не зависит от пути включения или относительного пути для этих требований.Вы можете использовать __DIR__, чтобы получить абсолютный путь к каталогу, в котором находится тестовый файл, а затем установить оставшийся путь к требуемому файлу относительно этого.

require_once __DIR__ . '/database/CrudTest.php';

Я не на 100%уверен, что этот путь правильный, потому что я не уверен, правильно ли я вас понял относительно того, где находятся эти файлы относительно тестового файла.Возможно, вам придется использовать

require_once __DIR__ . '/../database/CrudTest.php';

, но, в общем, общая идея та же.Таким образом, путь будет правильным независимо от относительного расположения вызывающего скрипта или текущего рабочего каталога.

...