Я использую MATLAB xUnit для тестирования некоторого кода. Я хотел бы иметь возможность напрямую вызывать некоторые функции, содержащиеся в частном каталоге
.
Вот простая воспроизводимая установка:
Создайте себе каталог проекта с двумя папками code
и test
. В коде
создайте подкаталог с именем private
, чтобы дерево каталогов выглядело как
project_root
code
private
test
В каталоге код
поместите функцию
function y = main()
y = sub();
end
в private
каталог разместить функцию
function y = sub()
y = 123;
end
В каталоге test
разместить функцию
function testsub()
assertElementsAlmostEqual(sub(), 123);
end
Теперь перейдите в каталог test и вызовите runtests
. Вы должны увидеть сообщение об ошибке sub
не определено.
закрытые
каталоги не разрешены на пути к Matlab, так что это не вариант. Я мог бы поместить функцию в каталог code
, которая извлекает дескрипторы для всех частных функций, но это кажется хакерским.
Как лучше всего получить доступ для тестирования закрытых функций?
РЕДАКТИРОВАТЬ:
Идея перехода в личный каталог имеет проблему. Теоретически я мог бы вызвать, например,
cd(privateDirectory);
suite = TestSuite.fromName(testDirectory);
suite.run
. К сожалению, среда тестирования переходит в каталог, содержащий тесты, как только вы вызываете run
.