Login
тестирование DLL-Проэкта с помощью cppUnit
408
NEW 19.04.09 21:12
Доброе время суток.
Я работаю с Visual Studio 2005 и хотел бы при помощи cppUnit
для моего DLL-Проэкта (динамическая библиотека) создать
автоматические тесты.
Вопрос в том как мне получить доступ к функциям проекта из "cppUnit"- Проэкта?
Вопрос в догонку?
Как тестировать приватные функции класса?
Я работаю с Visual Studio 2005 и хотел бы при помощи cppUnit
для моего DLL-Проэкта (динамическая библиотека) создать
автоматические тесты.
Вопрос в том как мне получить доступ к функциям проекта из "cppUnit"- Проэкта?
Вопрос в догонку?
Как тестировать приватные функции класса?
стойте там и слушайте сюда, именно отсюда будет проистекать
NEW 19.04.09 22:28
in Antwort krys 19.04.09 21:12, Zuletzt geändert 19.04.09 22:34 (scorpi_)
cppUnit не самая удобная либа. Возьми лучше Boost.Test или UnitTest++. Что касается private функций, то я считаю, что их следует тестировать только через публичные функции.
Первый вопрос не вполне понятен. Сделай в том же solution проект для тестов, пропиши его в зависимости к основному, а исполнение тестовой программы пропиши в post-build основного проекта.
Можешь ещё почитать парочку вопросов на SO:
Should non-public functions be unit tested and how?
testing classes
Первый вопрос не вполне понятен. Сделай в том же solution проект для тестов, пропиши его в зависимости к основному, а исполнение тестовой программы пропиши в post-build основного проекта.
Можешь ещё почитать парочку вопросов на SO:
Should non-public functions be unit tested and how?
testing classes
NEW 19.04.09 23:29
in Antwort scorpi_ 19.04.09 22:28
Он имеет в виду классы/функции, которые не экспортируются из dll. Я решил эту проблему сл. образом: вдобавок к обычной цели (dll) сделал статическую, которую и линкую к тестовой exe. С помощью cmake это делается одной строкой :)
NEW 19.04.09 23:36
in Antwort krys 19.04.09 21:12
NEW 19.04.09 23:39
Я вообще не понимаю при чём тут это. Unit test'ы работают на уровне исходников, ты просто инклюдишь/включаешь в проект нужные файлы...
in Antwort Simple 19.04.09 23:29
В ответ на:
Он имеет в виду классы/функции, которые не экспортируются из dll.
Он имеет в виду классы/функции, которые не экспортируются из dll.
Я вообще не понимаю при чём тут это. Unit test'ы работают на уровне исходников, ты просто инклюдишь/включаешь в проект нужные файлы...
NEW 19.04.09 23:42
in Antwort scorpi_ 19.04.09 23:39
Мне это почему-то казалось нехорошим приемом, но раз ты это говоришь... :)
NEW 19.04.09 23:44
in Antwort Simple 19.04.09 23:36
Дискуссия так себе. Я пожалуй с o-l-o и iain соглашусь.
NEW 19.04.09 23:46
in Antwort Simple 19.04.09 23:42
Ну ты же фактически тоже включаешь в тестовый проект хедеры и либ-файлы. Либ-файлы или cpp-файлы -- это уже детали.
NEW 20.04.09 13:56
in Antwort Simple 20.04.09 06:30
В конкретном данном случае прав ты. Надо сказать, что в последнее время я работал с gcc и make, так что мои рассуждения имели несколько теоретический характер. Поигравшись немного со студией, я думаю, что в случае DLL-проекта лучше сделать три под-проекта в одном solution'е: lib, dll, test. Test зависит от lib, dll зависит от test. Test.exe запускается в постбилде самого себя.
PS Вообще говоря всё это не совсем удобно делать со студией. Make'ом удобнее разбить тесты на части, так чтобы при компиляции небольшой части исходников запускалась компиляция и исполнение тестов только для этой части проекта.
PS Вообще говоря всё это не совсем удобно делать со студией. Make'ом удобнее разбить тесты на части, так чтобы при компиляции небольшой части исходников запускалась компиляция и исполнение тестов только для этой части проекта.
NEW 20.04.09 14:43
in Antwort scorpi_ 20.04.09 13:56
Make'ом удобнее разбить тесты на части, так чтобы при компиляции небольшой части исходников запускалась компиляция и исполнение тестов только для этой части проекта.
------
Не совсем внятно что именно составляет проблему - студия позволяет перестроить отдельный проект и, после того как он перестроен, делать или не делать перестройку зависимых проектов. Да, чуток беднее, но никаких проблем, если нет завышенных требований к управлению зависимостями...
------
Не совсем внятно что именно составляет проблему - студия позволяет перестроить отдельный проект и, после того как он перестроен, делать или не делать перестройку зависимых проектов. Да, чуток беднее, но никаких проблем, если нет завышенных требований к управлению зависимостями...
NEW 20.04.09 14:57
in Antwort Murr 20.04.09 14:43
Чтобы воспроизвести то, что я делаю мейком, придётся делать по проекту на папку. Ибо если я компилирую какую-нибудь отдельную папку в глубине дерева исходников, то мейк дергает соответствующую папку в дереве тестов.
NEW 20.04.09 15:31
in Antwort scorpi_ 20.04.09 13:56
Если файлы проектов генерируются cmake, то вполне удобно. Я очень рад, что тогда вас послушал и остановился на нем :)
А код в чем писал?
В ответ на:
Надо сказать, что в последнее время я работал с gcc и make, так что мои рассуждения имели несколько теоретический характер
Надо сказать, что в последнее время я работал с gcc и make, так что мои рассуждения имели несколько теоретический характер
А код в чем писал?
NEW 20.04.09 15:35
В студии. Make-проект можно вполне удобно вписать в студию, только дебажить нельзя. Надо бы debug-engine для gdb написать...
in Antwort Simple 20.04.09 15:31
В ответ на:
А код в чем писал?
А код в чем писал?
В студии. Make-проект можно вполне удобно вписать в студию, только дебажить нельзя. Надо бы debug-engine для gdb написать...
NEW 20.04.09 15:44
in Antwort Simple 20.04.09 15:31
NEW 20.04.09 15:50
in Antwort scorpi_ 20.04.09 15:44
NEW 22.04.09 12:14
Открой для себя friend. http://www.cyberguru.ru/programming/cpp/cpp-language-straustrup3-page14.html
in Antwort krys 19.04.09 21:12
В ответ на:
Вопрос в догонку?
Как тестировать приватные функции класса?
Вопрос в догонку?
Как тестировать приватные функции класса?
Открой для себя friend. http://www.cyberguru.ru/programming/cpp/cpp-language-straustrup3-page14.html