Проблема при тестировании asserts - библиотека тестирует не себя, а версию из стандартной библиотеки

bug

#1

leemuar @leemuar нояб. 01 21:34
@artbear Я что-то не понял фишку юнит-тестов asserts: для того чтобы себя протестировать библиотека подключает… другую версию себя из стандартной библиотеки? И тестирует не собственные скрипты, а стандартную библиотеку? Либо я что-то не понял, либо это бред какой-то
получается тесты asserts тестируют не собственные скрипты, а то что установлено в качестве пакета asserts в системе

Да, это проблема.

Для исправления нужно верхнюю строку в файле https://github.com/oscript-library/asserts/blob/master/tests/bdd-assertions-tests.os изменить на

#Использовать “..”


#2

Именно с тремя точками?

В этом есть какая то задумка или можно переписать тесты с ЗагрузитьСценарий("…/src/bdd-assertion-tests.os") и прислать пул реквест?


#3

Это особенность форума :slight_smile:
Исправил сообщение на показ 2 точек


#4

Не надо юзать ЗагрузитьСценарий в данном контексте.
Кто-то дал такой совет?


#5

Достаточно PR c 2мя точками


#6

Понял, спасибо.
Про ЗагрузитьСценарий никто так не советовал, я тесты своих библиотек так пишу.


#7

Как библиотеку тестировать? Поменял на две точки, запускаю 1testrunner (батник из стандартной поставки), получаю ошибку:


#8

@artbear как у вас организовано тестирование этой библиотеки? Я понимаю смысл ошибки, но не понимаю как тогда запускать нормально тестирование


#9

@leemuar С тестированием asserts проблемы :frowning:
Что делать, пока не очень понятно.

Сама библиотека хорошо протестирована, т.к. раньше (давно) тесты работали, а изменений давно не было.
Библиотека юзается практически во всех “официальных” и активных пакетах, так что проблем с ее работоспособностью нет.

я вчера или позавчера вечером пробовал быстро порешать, в чем проблема.
Не удалось.

PR все равно присылай, я PR обычно хорошо проверяю :slight_smile:


#10

Для полного исправления этой проблемы, как и проблемы тестирования любой дев-библиотеки при наличии prod-версии этой же библиотеки, нужно юзать следующую схему:

  • заменить в каталоге %OneScript%/lib файл package-loader.os на файл из моего gist-а
    • это главное неудобство, т.к. часто этот каталог залочен
    • при установке новой версии движка движок заменяет этот файл на свой :frowning:
  • запустить тестирование через oscript tasks\tests.os
    • tasks\tests.os я сделал достаточно универсальным, и для 1testrunner, и для 1bdd
    • возможно, в каких-то пакетах потребуется слегка поправить первую строку Использовать .. на Использовать ../src

При выполнении указанных действий проходит сборка именно дев-версии!

В этом легко убедиться - например, для asserts добавить ВызватьИсключение 1; в метод Что

Такой метод подходит, пока не будет финального решения с oscript_modules и opm, которое обещают сделать @nixel2007 и @EvilBeaver

/cc @nixel2007 @EvilBeaver @pumbaEO @dmpas