Что лучший способ состоит в том, чтобы установить сервер интеграционного тестирования?

  1. Вы помещаете туда два цифры в год. Первый век. И грегорианский календарь начался в 16 веке. Я думаю, вы должны добавить 2000 к году.
  2. Месяц в функции new GregorianCalendar (год, месяц, дни) основан на 0. Вычитайте 1 из месяца.
  3. Измените тело второй функции так:
        String dateFormatted = null;
        SimpleDateFormat fmt = new SimpleDateFormat("dd-MMM-yyyy");
        try {
            dateFormatted = fmt.format(date);
        }
        catch ( IllegalArgumentException e){
            System.out.println(e.getMessage());
        }
        return dateFormatted;
    

После отладки вы увидите, что просто GregorianCalendar не может быть аргумент fmt.format ();

На самом деле, никто не нуждается в GregorianCalendar в качестве вывода, даже вам говорят возвращать «строку».

Измените заголовок вашей функции формата на

public static String format(Date date) 

и внести соответствующие изменения. fmt.format() с радостью возьмет объект Date.

  1. Всегда, когда возникает неожиданное исключение, поймайте его самостоятельно, не позволяйте машине java делать это. Таким образом, вы поймете проблему.
5
задан Keith 27 August 2008 в 12:30
поделиться

6 ответов

Вы определенно хотите разбить задачи. Вот хороший пример конфигурации CruiseControl.NET, которая имеет различные цели (задачи) для каждого шага. Это также использует common.build файл, который может быть общими для проектами с небольшой настройкой.

http://code.google.com/p/dot-net-reference-app/source/browse/#svn/trunk

3
ответ дан 14 December 2019 в 13:52
поделиться

Я использую TeamCity со сценарием сборки nant. TeamCity помогает установить часть сервера CI, и сценарий сборки nant помогает сделать много задач, что касается поколения отчета.

Вот статья, которую я написал об использовании CI с CruiseControl.NET, это имеет сценарий сборки nant в комментариях, которые могут быть снова использованы через проекты:

Непрерывная интеграция с CruiseControl

1
ответ дан 14 December 2019 в 13:52
поделиться

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

Необходимо смочь создать одно большое задание из мелких кусочков, так или иначе.

0
ответ дан 14 December 2019 в 13:52
поделиться

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

Например, в моей текущей позиции, мы создаем подчасти для каждой из наших платформ (Mac, Linux, Windows) на их соответствующих платформах. У нас затем есть одноэтапное (с несколькими шагами sub), который компилирует их в окончательную версию, которая закончится в заключительных дистрибутивах.

Если что-то идет не так, как надо на каком-либо из тех шагов, довольно легко диагностировать.

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

  1. Создайте сменные части
    1. Скомпилируйте для Mac
    2. Скомпилируйте для ПК
    3. Скомпилируйте для Linux
  2. Сделайте заключительные Плагины
  3. Запустите Сменные тесты
  4. Промежуточное звено сборки IDE (Мы должны загрузить здание),
  5. Создайте заключительный IDE
  6. Запустите тесты IDE
1
ответ дан 14 December 2019 в 13:52
поделиться

Хороший день,

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

</thebloodyobvious> (-:

аплодисменты, Rob

0
ответ дан 14 December 2019 в 13:52
поделиться

Подход, который я одобряю, является следующей установкой (На самом деле предполагающий, что Вы находитесь в проекте.NET):

  • CruiseControl.NET.
  • Задачи NANT для каждого отдельного шага. Nant. Contrib для альтернативных шаблонов CC.
  • NUnit для выполнения модульных тестов.
  • NCover для выполнения покрытия кода.
  • FXCop для отчетов о статическом анализе.
  • Подверсия для управления исходным кодом.
  • CCTray или подобный на всех dev полях для получения уведомления о сборках и отказах и т.д.

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

То, что я делаю в этих случаях, создают три сборки (или возможно два):

  • Сборка CI инициирована регистрацией и делает чистый SVN, Добираются, Сборка, и запускает легкие тесты. Идеально можно подавить это к минутам или меньше.
  • Более всесторонняя сборка, которая могла каждый час быть (если изменения), который делает то же как CI, но запускает более всесторонние и трудоемкие тесты.
  • Ночная сборка, которая делает все и также выполняет анализ покрытия кода и статический анализ блоков и выполняет любые шаги развертывания для создания ежедневных пакетов MSI и т.д.

Ключевая вещь о любой системе CI состоит в том, что это должно быть органическим и постоянно настроить. Существуют некоторые большие расширения CruiseControl.NET, который регистрирует и строит диаграмму синхронизаций сборки и т.д. для шагов и позволяет Вам сделать исторический анализ и тем самым позвольте Вам непрерывно настраивать сборки для хранения их мгновенными. Это - что-то, что менеджеры находят трудно, чтобы признать, что поле сборки, вероятно, заставит Вас напряженно трудиться в течение одной пятой Вашего рабочего времени только для остановки его прекращение работу.

1
ответ дан 14 December 2019 в 13:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: