Я начинаю проект в C# .Net, должен ли я создать службу Windows. Эта служба будет прослушивать несколько последовательных портов и перенаправлять некоторые из данных на другой последовательный порт. Я пытаюсь найти решение CI, которое даст мне сквозное тестирование. В основном отправляя данные на виртуальные последовательные порты на мою службу, а затем слушайте на выходе, чтобы убедиться, что правильные данные перенаправлены.Как протестировать интеграционные тесты на программном интерфейсе с последовательными портами?
Для ввода данных у меня будут файлы журналов, которые могут быть отправлены моей тестируемой службе, и я создам файлы с ожидаемыми результатами. Используя com0com для создания пар виртуальных последовательных портов, это должно быть выполнимо.
Я действительно не понял, как я должен структурировать эти тесты, используя какой язык или структуру. Я уже знаю немного Python, у которых хорошая поддержка последовательного порта, поэтому я могу использовать это для запуска своих тестов. Тогда мне нужен достойный способ управления набором тестов, написанных на Python, тестирования службы .NET.
Можно ли это сделать, что-то вроде Hudson или CruiseControl.Net? Исходный код будет размещен в репозитории Mercurial (HG), и в идеале мои тесты будут выполняться каждый раз, когда я нажимаю на сервер (если допустимо время работы).
Звучит ли это как хороший план? Любые другие способы, которыми я мог бы это сделать?
Я также буду использовать NUnit для запуска других тестов, включая насмешливый последовательные порты. Но со сложными двоичными данными в качестве ввода я бы хотел запустить полные сквозные тесты. Тот факт, что я передам это другим людям для будущего обслуживания, означает, что мне бы хотелось «легко» добавить больше этих тестов, когда мы идем. –
Тестирование End To End еще более важно, чем модульное тестирование. Издевательский интерфейс порта также является хорошей идеей, но не для завершения теста с реальными данными. – Johannes