Что-то, что здесь не упоминается и полезно: добавление суффикса к дню. Я отделил логику суффиксов, чтобы вы могли использовать ее для любого числа, которое вам нравится, а не только даты.
import time
def num_suffix(n):
'''
Returns the suffix for any given int
'''
suf = ('th','st', 'nd', 'rd')
n = abs(n) # wise guy
tens = int(str(n)[-2:])
units = n % 10
if tens > 10 and tens < 20:
return suf[0] # teens with 'th'
elif units <= 3:
return suf[units]
else:
return suf[0] # 'th'
def day_suffix(t):
'''
Returns the suffix of the given struct_time day
'''
return num_suffix(t.tm_mday)
# Examples
print num_suffix(123)
print num_suffix(3431)
print num_suffix(1234)
print ''
print day_suffix(time.strptime("1 Dec 00", "%d %b %y"))
print day_suffix(time.strptime("2 Nov 01", "%d %b %y"))
print day_suffix(time.strptime("3 Oct 02", "%d %b %y"))
print day_suffix(time.strptime("4 Sep 03", "%d %b %y"))
print day_suffix(time.strptime("13 Nov 90", "%d %b %y"))
print day_suffix(time.strptime("14 Oct 10", "%d %b %y"))
Какой вход Вы используете? Есть ли некоторый способ, которым можно переопределить поведение входа значения по умолчанию, чтобы просто проигнорировать все сообщения журнала?
Некоторые опции:
-Xmx <some number>M
, как -Xmx 256M
.Я просто увеличил бы доступную память.. Попытайтесь добавить-Xmx256m-Xmx256m к своему VM.
Решение переопределяло регистрирующиеся свойства. Теперь я отключил вход, и все, кажется, работает (тест все еще работает). Если это будет работать, то я настрою путь к входу в файл. Спасибо все (и поздравления Jeff и друзьям для этого сайта).
Я вижу, что ответ уже был принят, но здесь - то, что я отправил бы, ввел ли я его и протестировал быстрее:
Если путем "входа" Вас означают System.out.println () или System.err.println (), и если Вы уверены, что Вашему тесту действительно не нужны журналы, то можно перенаправить stdout и stderr программно.
// Save the original stdout and stderr
PrintStream psOut = System.out;
PrintStream psErr = System.err;
PrintStream psDevNull = null;
try
{
// Send stdout and stderr to /dev/null
psDevNull = new PrintStream(new ByteArrayOutputStream());
System.setOut(psDevNull);
System.setErr(psDevNull);
// run tests in loop
for (...)
{
}
}
finally
{
// Restore stdout and stderr
System.setOut(psOut);
System.setErr(psErr);
if (psDevNull != null)
{
psDevNull.close();
psDevNull = null;
}
}
Таким образом, Ваш тестовый вывод будет отключен, но другой вывод от JUnit не будет, как это было бы при использовании перенаправления на командной строке как это:
ant test &> /dev/null
Перенаправление командной строки заставляет весь вывод Ant/JUnit быть перенаправленным, не, что прибывает из класса, который Вы тестируете, таким образом, это, вероятно, не, что Вы хотите. Программное перенаправление заставляет только печать/записи к System.out и System.err в Вашей программе быть перенаправленной, и Вы все еще получите вывод от Муравья и JUnit.
Если это поможет, установка outputtoformatters = "no" решила все мои проблемы с памятью (в Ant 1.7.1 это предотвращает отправку вывода, генерируемого тестами, в тестовые форматеры).