Найдено результатов: 4

Как я должен тестировать модульный генератор кода?

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

Я разработал генератор кода, который принимает наш интерфейс python к нашему коду C++ (сгенерированному через SWIG) и генерирует код, необходимый для того, чтобы представить его как WebServices. Когда я разрабатывал этот код, я делал это с помощью TDD, но мои тесты оказались чертовски хрупкими. Поскольку каждый тест по существу хотел проверить, что для заданного бита входного кода (который оказывается заголовком C++) я получу заданный бит выходного кода, я написал небольшой движок, который читает определения тестов из входных файлов XML и генерирует тестовые случаи из этих ожиданий.

Проблема в том, что я вообще боюсь идти на изменение кода. Это и тот факт, что сами юнит-тесты а: сложны, а б: хрупки.

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

Есть ли у кого-нибудь опыт чего-то подобного, которым они хотели бы поделиться?

c++   python   unit-testing   code-generation   swig    

488   8   18:49, 9th August, 2020


Как я должен тестировать модульный генератор кода?

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

Я разработал генератор кода, который принимает наш интерфейс python к нашему коду C++ (сгенерированному через SWIG) и генерирует код, необходимый для того, чтобы представить его как WebServices. Когда я разрабатывал этот код, я делал это с помощью TDD, но мои тесты оказались чертовски хрупкими. Поскольку каждый тест по существу хотел проверить, что для заданного бита входного кода (который оказывается заголовком C++) я получу заданный бит выходного кода, я написал небольшой движок, который читает определения тестов из входных файлов XML и генерирует тестовые случаи из этих ожиданий.

Проблема в том, что я вообще боюсь идти на изменение кода. Это и тот факт, что сами юнит-тесты а: сложны, а б: хрупки.

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

Есть ли у кого-нибудь опыт чего-то подобного, которым они хотели бы поделиться?

c++   python   unit-testing   code-generation   swig    

521   8   02:25, 26th August, 2020


Python генератор кода для Visual Studio?

У меня была идея, если я добавлю файл python .py в свой проект C# и помечу файл пользовательским генератором, который выполнит файл python, и обработает вывод как результат генерации кода, т. е. поместите его в файл C#, что позволит мне сделать довольно много генерации кода в рамках процесса сборки.

Кто-нибудь знает, существует ли такой пользовательский генератор для Visual Studio 2008?

python   visual-studio-2008   code-generation    

484   5   14:25, 24th August, 2020


Создание таблиц базы данных из определений объектов

Я знаю, что существует несколько (автоматических) способов создания уровня доступа к данным для управления существующей базой данных (от LINQ до SQL, Hibernate и т. д...). Но я начинаю немного уставать (и я считаю, что должен быть лучший способ делать вещи) от таких вещей, как:

  1. Создание / изменение таблиц в Visio
  2. Использование Visio-х "Update Database" для создания / изменения базы данных
  3. Импорт таблиц в объект "LINQ to SQL classes"
  4. Соответственно, меняется код
  5. Скомпилировать

Как насчет способа создания схемы базы данных из определения объектов / сущностей? Я не могу найти хороших ссылок для таких инструментов (и я ожидал бы какой-то встроенной поддержки, по крайней мере, в некоторых фреймворках).

Было бы прекрасно, если бы я только мог ... :

  1. Изменение определения объекта
  2. Измените код, который управляет объектом
  3. Компилировать (изменения в базе данных производятся автоматически-магически)

database   orm   code-generation    

452   10   09:39, 13th August, 2020