Russian Qt Forum
Ноябрь 24, 2024, 09:40 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: QtCreator сборка для тестирования  (Прочитано 9713 раз)
deMax
Хакер
*****
Offline Offline

Сообщений: 600



Просмотр профиля
« : Февраль 11, 2014, 14:18 »

Как сделать отдельную сборку для тестирования? Т.е. как передать флаг тестирования #DEFINE TEST из настроек сборки в код.

Собираюсь писать проект с использованием TDD, и есть желание чтобы тесты запускались в отдельной сборке, в отдельной сборке отладка, в отдельной сборке релиз - чистая версия с удаленными через ifdef тестами.
Записан
Swa
Самовар
**
Offline Offline

Сообщений: 170


Просмотр профиля
« Ответ #1 : Февраль 11, 2014, 14:47 »

В QtCreator на вкладке Projects создаёте сборку Test, далее в Build Steps -> Additional arguments добавляете
Код:
"DEFINES+=TEST"
. В коде ставите условия
Код:
#ifdef TEST
...
#endif
Записан
deMax
Хакер
*****
Offline Offline

Сообщений: 600



Просмотр профиля
« Ответ #2 : Февраль 12, 2014, 07:59 »

Swa, спасибо.

А если в папке с проектом создать папку test и внутри создать проект с тестами, можно ли будет вместо pri файла подсунуть pro файл? Как правильнее? Кто нибудь писал на Qt используя TDD?
Записан
deMax
Хакер
*****
Offline Offline

Сообщений: 600



Просмотр профиля
« Ответ #3 : Февраль 13, 2014, 11:37 »

А в файле pro как закомментировать папку с тестами? Или не нужно, так как если в main.c закоментированн include, то тесты в проект не попадут?
Записан
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #4 : Февраль 17, 2014, 16:01 »

> в отдельной сборке релиз - чистая версия с удаленными через ifdef тестами.

и вдруг повалили баги ...

считаю что всегда следует работать с релизом
Записан
OKTA
Гость
« Ответ #5 : Февраль 17, 2014, 16:53 »

> в отдельной сборке релиз - чистая версия с удаленными через ifdef тестами.

и вдруг повалили баги ...

считаю что всегда следует работать с релизом


А дебажить как?
Записан
b-s-a
Гость
« Ответ #6 : Февраль 18, 2014, 11:12 »

Никто не мешает добавить отладочную информацию в релизную сборку. Или сделать свою "релизную с дебажной информацией" (как в CMake: RelWithDebInfo). Но отлаживаться в этом режиме сущий ад - курсор скачет хаотично, а добрая половина переменных "соптимизирована".
Записан
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #7 : Февраль 19, 2014, 12:22 »

А дебажить как?

логами (которые пойдут и в релиз т.к. все ошибки на месте не исправить, а лог с места работы программы очень полезен всегда)

Записан
OKTA
Гость
« Ответ #8 : Февраль 20, 2014, 12:18 »

А дебажить как?

логами (которые пойдут и в релиз т.к. все ошибки на месте не исправить, а лог с места работы программы очень полезен всегда)



Поверьте, нормальный дебаггинг ускоряет поиск багов в несколько раз, а чтобы искать по логам, придется делать крайне расширенный лог иначе потратите миллион лет на точную локализацию проблемы.
Записан
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #9 : Февраль 21, 2014, 07:55 »

Поверьте, нормальный дебаггинг ускоряет поиск багов в несколько раз, а чтобы искать по логам, придется делать крайне расширенный лог иначе потратите миллион лет на точную локализацию проблемы.

Не поверю.
Существует множество ситуаций, когда отладчик использовать невозможно, одна из них (и самая важная) - это работа программы на месте эксплуатации (в реальном железе). Или сетевое взаимодействие (когда остановиться невозможно) и т.д.

Записан
OKTA
Гость
« Ответ #10 : Февраль 21, 2014, 09:13 »

Дебажить самые страшные баги нужно еще до работы на реальном железе иначе это не разработка программы, а нервный выкидыш  Смеющийся.
 И почему это нельзя остановить, когда идет работа с сетью?
Записан
qate
Супер
******
Offline Offline

Сообщений: 1177


Просмотр профиля
« Ответ #11 : Февраль 21, 2014, 10:15 »

Дебажить самые страшные баги нужно еще до работы на реальном железе иначе это не разработка программы, а нервный выкидыш  Смеющийся.
 И почему это нельзя остановить, когда идет работа с сетью?

Часть багов конечно до релиза отлаживаются, но не все т.к. не учесть всех внешних факторов при разработке, которые будут в реальности
С сетью может быть простой баг по разным таймаутам, порядку обмена - лог это показывает сразу
Считаю, что выпускать программу без возможность лога - глупо (а раз есть лог, то отладчик не нужен)
Записан
b-s-a
Гость
« Ответ #12 : Февраль 21, 2014, 16:29 »

Лог и отладчик это разные вещи. Попробуй по логам крах обнаружь. А отладчик тебе курсор на строчку поставит и бэктрейс покажет.
Записан
lesav
Частый гость
***
Offline Offline

Сообщений: 235


qnx.org.ru


Просмотр профиля WWW
« Ответ #13 : Февраль 21, 2014, 19:10 »

Попробуй по логам крах обнаружь. А отладчик тебе курсор на строчку поставит и бэктрейс покажет.
Можно писать программы и без крахов.  Все зависит от опыта программиста.
У меня был один проект(программно технический комплекс на QNX), в котором я совсем не использовал дебаггер, и чувствовал себя комфортно. 
Компилил в Windows, затем POST_LINKом по sftp заливал на таргет и запускал в терминале по ssh.

И таки да, крах можно вычислить с помощью стандартного вывода, только немного сложнее чем в дебагере.
Расширенный лог тоже оч полезная штука, главное что-бы его можно было вкл/откл.
Записан

b-s-a
Гость
« Ответ #14 : Февраль 21, 2014, 22:38 »

Если для тебя и твоего начальства время != деньги, то можно и не использовать отладчик.
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.053 секунд. Запросов: 23.