JUnit java.lang. OutOfMemoryError при запущении всех тестов в пакете

Вы звучите, как будто Вы ищете три главных вещи: кодируйте шаблоны, осуществив рефакторинг инструменты и автозавершение.

хорошие новости - то, что Xcode 3 и позже идет с превосходным автозавершением и обрабатывает поддержку по шаблону. По умолчанию необходимо явно запросить завершение путем удара клавиши выхода. (Это на самом деле работает во всем NSTextView с; попробуйте его!), Если Вы хотите иметь завершения, появляются автоматически, можно перейти в [1 116] Предпочтения -> Смысл Кода и устанавливать всплывающее окно для появления автоматически после нескольких секунд. Необходимо найти хорошие завершения для C и кода Objective C, и довольно хорошие завершения для C++.

XCode также имеет твердую систему шаблона/скелета, которую можно использовать. Вы видите то, что шаблоны доступны по умолчанию путем попытки Редактировать->, Вставляют текстовый Макрос. Конечно, Вы не хотите вставлять текстовые макросы с мышью; это побеждает точку. Вместо этого у Вас есть две опции:

  1. Назад в [1 118] Предпочтения , перейдите в [1 119] Привязки клавиш , и затем, под [1 120] Привязка Клавиши меню , присвойте определенный ярлык на макросы, которые Вы часто используете. Я лично не потрудился делать это, но я знаю много большого Mac devs, кто делает
  2. Использование CompletionPrefix. По умолчанию почти все шаблоны имеют специальный префикс, который, если Вы вводите и затем поражаете клавишу выхода, приведет к вставляемому шаблону. Можно использовать Control-/для перемещения между полями завершения.

    Вы видите полный список макросов XCode по умолчанию и их связанного CompletionPrefix es в Нечестное Вращение .

    можно также добавить собственные макросы или изменить значения по умолчанию. Для этого отредактируйте файл /Developer/Library/Xcode/Specifications/{C,HTML}.xctxtmacro. Синтаксис должен быть очевидным, если не ужасно дружественный.

, К сожалению, если Вы увлекаются R#, Вы будете разочарованы Вашими опциями рефакторинга. Основной рефакторинг обеспечивается в XCode через контекстное меню или путем удара Shift-Apple-J. Оттуда, можно извлечь и переименовать методы, продвинуть и понизить в должности их через иерархию классов и несколько других общих операций. К сожалению, ни XCode, ни любые сторонние утилиты не предлагают ничему приближение Resharper, таким образом, на той передней стороне, Вы являетесь в настоящее время неудачливыми. К счастью Apple уже продемонстрировала версии XCode в работах, которые значительно улучшили возможности рефакторинга, так надо надеяться, Вы не должны будете ожидать слишком долго, прежде чем ситуация начинает улучшаться.

6
задан Simon Tower 20 November 2009 в 15:14
поделиться

3 ответа

You must set all fields of the test classes to null in tearDown().

The reason is that JUnit instantiates one instance of the test class per test. It keeps that instance around for the whole time to save the results of the test (success, failure, stack trace). So if you use fields, they will stay and you'll run out of memory.

9
ответ дан 8 December 2019 в 14:43
поделиться

У меня возникла аналогичная проблема при использовании TestNG, и я проследил ее до объема информации журнала, которую я генерировал на консоли. Как только я уменьшил это значение, я смог запустить свой набор тестов без проблем с памятью.

4
ответ дан 8 December 2019 в 14:43
поделиться

The GC runs when the CPU has spare time or the free memory is low. If your tests crash, you might have a memory leak somewhere. (Yes they exist in java too)

Have a look for circular references and static classes/variables.Theses are IIRC common reasons for memory leaks. You should also have a look at jconsole.

3
ответ дан 8 December 2019 в 14:43
поделиться
Другие вопросы по тегам:

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