Ускорение тестирования разработок

Автор Тема: Ускорение тестирования разработок  (Прочитано 4710 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн YusufАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 116
  • Карма: 4
Здравствуйте, уважаемые наставники не нашел такой темы и решил спросить, поделитесь опытом как ускорить проверку написанного кода. Например при любом исправлении как известно приходится перезагружать autocad.
Я что не касается autocad api сначала делаю в консоли и проверяю, например существует ли этот файл на сервере, если работает нормально, потом копирую в библиотеку, ладно это не так уж времени занимает, (хотя этот процесс тоже хотелось бы оптимизировать), но когда обращение к api даже для проверки одной переменной приходится перезагружаться, есть способ как это ускорить?
Думал делать так, если нет обращения к api, делать в консоли, проверять и потом  менять консольное приложение на библиотеку и добавлять как ссылку в библиотеку для autocad. Подскажите оптимальное решение как Вы делаете?
Не придумали еще ничего для autocad такое как был в revit addin который ссылается на dll?

Отмечено как Решение Yusuf 12-11-2020, 20:39:26

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
если нет обращения к api
Если нет обращений к API AutoCAD, то смотрите, что такое Unit-тестирование.
Если есть обращения к API AutoCAD, то всё равно смотрите Unit-тестирование и придумывайте как его использовать в связке с AcCoreConsole.exe. Об этом еще лет 5 тому назад Бушман Андрей писал, можно попробовать найти.
Это будет самый надёжный и быстрый способ тестирования, однако, требует определённых затрат по времени на написание тестов. Но, есть резонное мнение, что эти затраты окупятся в будущем, позволяя избежать ошибок при дальнейшей разработке.
Есть даже технология написания наиболее отказоустойчивого кода, когда сперва пишутся Unit-тесты, а затем уже основной код.

Онлайн Привалов Дмитрий

  • ADN Club
  • *****
  • Сообщений: 533
  • Карма: 117
поделитесь опытом как ускорить проверку написанного кода. Например при любом исправлении как известно приходится перезагружать autocad.
Я лишь перефразирую и немного уточню, что сказал Дмитрий.
1. Если для тестов требуется тестовый DWG файл. Подготовь его. Оставь только то, что надо, подлечи и вычисти. Если потребуется много раз подгружать файл, это сэкономит тебе время.
2. Если тестируешь обращение к БД, то постарайся использовать AcCoreConsole.exe, т.к. самый быстрый способ загрузить AutoCAD, тестируемую dll, файл.
3. Разбивай программу на модули, это основа тестирования.
4. Если модуль можно протестировать без запуска автокада, тестируй без автокада.
5. Готовые и протестированные  модули отключай на время. Например если запрашиваешь папку, и это работает, закомментируй код и передавай путь к папке, чтобы не тратить время повторяя одно и то же при тестах.
6. Чем больше проект, количество модулей, дольше разработка тем актуальнее Unit-тестирование, TDD и т.д.

Оффлайн Lemieux

  • ADN OPEN
  • ****
  • Сообщений: 379
  • Карма: 21
Здравствуйте, уважаемые наставники не нашел такой темы и решил спросить, поделитесь опытом как ускорить проверку написанного кода. Например при любом исправлении как известно приходится перезагружать autocad.
Я что не касается autocad api сначала делаю в консоли и проверяю, например существует ли этот файл на сервере, если работает нормально, потом копирую в библиотеку, ладно это не так уж времени занимает, (хотя этот процесс тоже хотелось бы оптимизировать), но когда обращение к api даже для проверки одной переменной приходится перезагружаться, есть способ как это ускорить?
Думал делать так, если нет обращения к api, делать в консоли, проверять и потом  менять консольное приложение на библиотеку и добавлять как ссылку в библиотеку для autocad. Подскажите оптимальное решение как Вы делаете?
Не придумали еще ничего для autocad такое как был в revit addin который ссылается на dll?
Я не перезагружаю. Иногда VS требует перезагрузки, когда есть лямбда выражения. А так отладка отлично работает.

Оффлайн YusufАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 116
  • Карма: 4
Я не перезагружаю. Иногда VS требует перезагрузки, когда есть лямбда выражения. А так отладка отлично работает.
библиотека же не соберется если используется в автокаде
Спасибо всем за советы!

Оффлайн Вильдар

  • ADN Club
  • ****
  • Сообщений: 405
  • Карма: 77
  • Skype: vildar82
Например при любом исправлении как известно приходится перезагружать autocad.
да, перегружаю автокад. но не после написания каждой строки конечно. неприятно да. особенно лисперы с ужасом к этому относятся)
есть лисапед мой, а-ля аддин менеджер как в ревите )
https://github.com/vildar82/AcadAddinManager
бери дарю)

Оффлайн Lemieux

  • ADN OPEN
  • ****
  • Сообщений: 379
  • Карма: 21
Я не перезагружаю. Иногда VS требует перезагрузки, когда есть лямбда выражения. А так отладка отлично работает.
библиотека же не соберется если используется в автокаде
Спасибо всем за советы!
Я не знаю в чём у тебя проблема, у меня VS работает в режиме "Debug"  и в режиме отладки я могу всё смотреть по коду. А если надо поправить код, то ставлю на паузу, правлю код, жму F5 и дальше тестить. AutoCAD иногда даже прощает ошибки и не вылетает с критом.

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
А если надо поправить код, то ставлю на паузу, правлю код, жму F5 и дальше тестить. AutoCAD иногда даже прощает ошибки и не вылетает с критом.
Что-то не верится, что AutoCAD поддерживает Edit and Continue. Скорее всего, есть какой-то подвох. Запишите видео - иначе не поверю )

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
5. Готовые и протестированные  модули отключай на время. Например если запрашиваешь папку, и это работает, закомментируй код и передавай путь к папке, чтобы не тратить время повторяя одно и то же при тестах.
Вот этой идеи не понял - зачем? В TestExplorer можно просто не выполнять тест отдельного модуля. Зачем комментировать?

Оффлайн Вильдар

  • ADN Club
  • ****
  • Сообщений: 405
  • Карма: 77
  • Skype: vildar82
Дмитрий Загорулькин,
раньше, в студии пользовалься этим. но там действительно с ограничениями, типа присвоение константной переменной можно поменять вроде было. а прям что-то переписать, поправить вроде нет.
еще удобно было wpf разметку менять и окно перестраивалось на лету.
жалко, этого пока нет в райдере.

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
еще удобно было wpf разметку менять и окно перестраивалось на лету.
жалко, этого пока нет в райдере.
Off-Topic: показать
В райдере WPF разрабатывать-править - это боль  :) Я для этого только студию использую. Настроил её максимально "под райдер": Solution Explorer слева, шрифт JetBrains Mono, подключил решарпер - и почти норм  ;D

Оффлайн YusufАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 116
  • Карма: 4
Я не знаю в чём у тебя проблема, у меня VS работает в режиме "Debug"  и в режиме отладки я могу всё смотреть по коду. А если надо поправить код, то ставлю на паузу, правлю код, жму F5 и дальше тестить. AutoCAD иногда даже прощает ошибки и не вылетает с критом.
Воот я дурак, столько мучался, не знал, почему раньше не спросил, реально получается делать изменения. Иногда думаешь зачем такую глупость спрашивать оказывается надо )).
да, перегружаю автокад. но не после написания каждой строки конечно. неприятно да. особенно лисперы с ужасом к этому относятся)
есть лисапед мой, а-ля аддин менеджер как в ревите )
https://github.com/vildar82/AcadAddinManager
бери дарю)
спасибо хороший лисапед.

Оффлайн trir

  • ADN Club
  • ****
  • Сообщений: 470
  • Карма: 63
Цитировать
Вот этой идеи не понял - зачем? В TestExplorer можно просто не выполнять тест отдельного модуля. Зачем комментировать?
когда в AutoCAD тестируешь какое то сложное поведение, то можно отключить диалоги с пользователем и вставить константы

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
типа присвоение константной переменной можно поменять вроде было
Я для этого использую переменные автокада USERR1-5, USERI1-5 и USERS1-5.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
А если надо поправить код, то ставлю на паузу, правлю код, жму F5 и дальше тестить. AutoCAD иногда даже прощает ошибки и не вылетает с критом.
Что-то не верится, что AutoCAD поддерживает Edit and Continue. Скорее всего, есть какой-то подвох. Запишите видео - иначе не поверю )
В каких-то версиях AutoCAD, Visual Studio и при каких-то удачных обстоятельствах это работает. У меня пару раз получалось, но я бы не рисковал. Само-собой в native и mixed C++ такой вариант не проходит вообще.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение