Есть задача: проверить, что если тип наследует какой-то интерфейс, он правильно реализует какой-то метод этого интерфейса. Ну, или: если тип имеет какой-то атрибут, он опять же правильно реализует какой-то метод.
Дело осложняется тем, что типы мы подгружаем динамически после старта приложения, т.к. солюшн содержит набор типов в разных проектах, которые связаны между собой через интерфейсы и между этими проектами нет прямых references.
Тесты пишем на NUnit. И, я пока не могу понять, каким образом перечислить внутри юнит-теста все типы солюшна? Есть какие-то стандартные способы решения такой задачи?
Здравствуйте, Nikolay_Ch, Вы писали:
N_C>Тесты пишем на NUnit. И, я пока не могу понять, каким образом перечислить внутри юнит-теста все типы солюшна? Есть какие-то стандартные способы решения такой задачи? http://docs.teststack.net/conventiontests/index.html ? Он вроде бы нормально сочетается с nunit.
Здравствуйте, Sinix, Вы писали:
N_C>>Тесты пишем на NUnit. И, я пока не могу понять, каким образом перечислить внутри юнит-теста все типы солюшна? Есть какие-то стандартные способы решения такой задачи? S>http://docs.teststack.net/conventiontests/index.html ? Он вроде бы нормально сочетается с nunit.
А как там решается основной вопрос: найти все типы внутри папки, куда была проведена сборка? Перечислять в тесте все типы (ну, или все сборки) не вариант — всегда остается возможность пропустить что-нибудь.
Т.е., пор сути, у меня основной вопрос не "как протестировать", а "как прогрузить в память все сборки из папки, куда был проведен билд".
Здравствуйте, Nikolay_Ch, Вы писали:
N_C>Т.е., пор сути, у меня основной вопрос не "как протестировать", а "как прогрузить в память все сборки из папки, куда был проведен билд".
Вручную, пожалуй. Собираем список сборок, загружаем, получаем типы. Навскидку: http://stackoverflow.com/a/10253634/318263 http://stackoverflow.com/q/13663068/318263
upd ну и сами convention tests тога могут быть и не особо полезны.
Здравствуйте, Sinix, Вы писали:
S>Здравствуйте, Nikolay_Ch, Вы писали:
N_C>>Т.е., пор сути, у меня основной вопрос не "как протестировать", а "как прогрузить в память все сборки из папки, куда был проведен билд". S>Вручную, пожалуй. Собираем список сборок, загружаем, получаем типы. Навскидку:
Хе-хе... Неужели я бы задавал здесь вопрос, если бы было все так просто? Во-первых, у меня сборки не ссылаются друг на друга, а во-вторых — я не могу найти папку, куда был помещен собранный билд, к сожалению.
Надо еще сказать, что у меня проверка производится на TFS — а там вообще швах с папками. Получить изнутри билда папку, куда он складировал все сборки билда у меня не получается.
Здравствуйте, Nikolay_Ch, Вы писали:
N_C>Надо еще сказать, что у меня проверка производится на TFS — а там вообще швах с папками. Получить изнутри билда папку, куда он складировал все сборки билда у меня не получается.
AppDomain.CurrentDomain.BaseDirectory, или Assembly.Running.Codebase?
(по памяти, имя может отличаться).
Здравствуйте, Nikolay_Ch, Вы писали:
N_C>Приветствую!
N_C>Есть задача: проверить, что если тип наследует какой-то интерфейс, он правильно реализует какой-то метод этого интерфейса. Ну, или: если тип имеет какой-то атрибут, он опять же правильно реализует какой-то метод. N_C>Дело осложняется тем, что типы мы подгружаем динамически после старта приложения, т.к. солюшн содержит набор типов в разных проектах, которые связаны между собой через интерфейсы и между этими проектами нет прямых references. N_C>Тесты пишем на NUnit. И, я пока не могу понять, каким образом перечислить внутри юнит-теста все типы солюшна? Есть какие-то стандартные способы решения такой задачи?
N_C>Николай