Да
console.log
вызывает util.formatWithOptions
изнутри. Отформатированная строка отправляется в выходной поток (например, stdout, stderr). Во время форматирования создаются некоторые переменные.
Отформатированная строка является новой переменной, на которую ссылаются, пока процесс не запишет ее в дескриптор файла.
Итак, да для каждого вызова console.log
, создаются некоторые переменные. Увеличение памяти зависит от того, что и сколько раз ваш код записывает в журнал.
Я нахожусь в аналогичной ситуации. (Крупное приложение с большим количеством зависимостей). Нет почти никакого автоматизированного тестирования. Но существует большое желание устранить эту проблему. И вот почему мы собираемся заняться некоторыми проблемами с каждым новым выпуском.
Мы собираемся выпустить первую версию нового продукта. И первые знаки хороши. Но это была большая работа. Поэтому следующий выпуск мы верная потребность некоторый способ автоматизировать тестовый процесс. Вот почему я уже представляю модульные тесты. Хотя должный к зависимостям, это не реальные модульные тесты, но необходимо запустить где-нибудь.
Вещи мы сделали:
Но существует намного больше в списке требований, гарантируя достаточно работы для всей команды до пенсии.
И возможно я являюсь немного странным, но очищающий код может быть забава. Рефакторинг без модульных тестов является опасным обязательством, особенно если существует много побочных эффектов. Мы использовали программирование пары для предотвращения глупых ошибок. И много сеансов тестирования. Но в конце у нас есть более чистый код, и количество новых представленных ошибок было чрезвычайно низким.
О, и убедитесь, что Вы знаете, что это - дорогой процесс. Требуется много времени. И необходимо бороться с тенденцией заняться больше чем одной проблемой подряд.
Я предложил бы, чтобы Вы запланировали использовать и DUnit и что-то как TestComplete, поскольку каждый из них служит другой цели.
DUnit является большим для Поблочного тестирования, но является трудным использовать для полного тестирования приложения и тестирования UI.
TestComplete является одним из некоторых автоматизированные продукты тестирования, который на самом деле имеет поддержку Delphi, и наш инженер по контролю качества говорит мне, что их поддержка очень хороша.
Знайте, хотя та установка автоматизированного тестирования является большим и трудоемким заданием. При строгом применении поблочного тестирования и auomated тестирования UI Вы могли бы легко закончить с большим количеством тестового кода, чем производственный код.
С большим (существующим) приложением Вы находитесь в трудной ситуации относительно реализации автоматизированного тестирования.
Моя рекомендация состоит в том, чтобы настроить Поблочное тестирование сначала, в сочетании с автоматизированным сервером сборки. Каждый раз, когда кто-то регистрирует что-либо к управлению исходным кодом, Модульные тесты выполняются автоматически. НЕ пытайтесь настроить модульные тесты на все прямо - это - просто слишком большое усилие для существующего приложения. Просто не забудьте создавать модульные тесты каждый раз, когда Вы добавляете новую функциональность, и каждый раз, когда Вы собираетесь внести изменения. Я также настоятельно рекомендую что каждый раз, когда об ошибке сообщают, что Вы создаете модульный тест, который воспроизводит ошибку перед фиксацией его.
Я не могу ответить на все, поскольку я никогда не использовал testcomplete, но я могу ответить на некоторых из тех.
1 - Да. Регрессионное тестирование стоит того. Довольно неловко Вам как разработчик, когда клиент возвращается Вам, когда Вы повредили что-то, что это раньше работало. Всегда хорошая идея удостовериться все, что раньше работало, все еще делает.
4 - Oracle имеет что-то названное Ретроспективным кадром, который позволяет Вам создать точку восстановления в базе данных. После выполнения тестирования, можно просто перейти назад к этой точке восстановления. Можно записать сценарии для использования его также, FLASHBACK DATABASE TO TIMESTAMP (FEB-12-2009, 00:00:00);
, и т.д.
Мы смотрим на использование VMware для изоляции части нашего тестирования.
Можно запустить с сохраненного снимка, таким образом, у Вас всегда есть последовательная среда и состояние локальной базы данных.
Действия VMware могут быть заданы сценарием, таким образом, можно автоматически установить последнюю сборку от сетевого местоположения, запустить тесты и закрыться впоследствии.
- Действительно ли это стоит того?
Вероятно. Установка и поддержание тестов могут быть большим заданием, но когда у Вас есть они, тесты могут быть выполнены очень легко и последовательно. Если Ваш проект развивается, некоторый набор тестов очень полезен.
- Это было бы хорошим способом протестировать?
Я сказал бы, что надлежащий набор тестов DUnit является лучшим первым шагом. Однако, если у Вас есть большая кодовая база, которая не спроектирована для тестирования, настраивание функциональных испытаний является еще большей болью, чем установка тестов GUI.
- Результат теста должен в моей базе данных (Oracle), быть там простым способом в testcomplete для проверки этих значений (несколько полей в нескольких таблицах)?
TestComplete имеет интерфейс ADO и BDE. Или можно использовать интерфейс OLE в VBScript для доступа ко всему, что это доступно.
- Существует ли путь в testcomplete для определения параметров командной строки для exe?
Да.
Я должен был бы установить тестовую базу данных, чтобы сделать все автоматизированное тестирование, там будет простой способ автоматизировать сброс тестового дб?
Транзакции использования: выполните откат когда завершенный тест. Это должно вернуться все к начальному состоянию.
Рекомендуемое чтение:
Один способ представить unittesting в (старом) приложении мог состоять в том, чтобы иметь "Базу данных Start" (как функция "Flashback", описанная Rich Adams). Программа som unittest использующий DUnit для управления GUI. Se "тестирование GUI с DUnit" на http://delphixtreme.com/wordpress/?p=181
Каждый раз тест запускается путем восстановления к "Базе данных Start", потому что, затем известный набор данных, может использоваться.