Есть ли что-то как 'автотест' для Python unittests?

Вот что я придумал для того, чтобы иметь дело с условным Descending. Вы можете комбинировать это с другими методами генерации динамической функции keySelector.

    public static IOrderedQueryable<TSource> OrderBy<TSource, TKey>(this IQueryable<TSource> source,
            System.Linq.Expressions.Expression<Func<TSource, TKey>> keySelector,
            System.ComponentModel.ListSortDirection sortOrder
            )
    {
        if (sortOrder == System.ComponentModel.ListSortDirection.Ascending)
            return source.OrderBy(keySelector);
        else
            return source.OrderByDescending(keySelector);
    }

Использование:

//imagine this is some parameter
var direction = System.ComponentModel.ListSortDirection.Ascending;
query = query.OrderBy(ec => ec.MyColumnName, direction);

Обратите внимание, что это позволяет вам связать это расширение .OrderBy с новый параметр на любой IQueryable.

// perhaps passed in as a request of user to change sort order
// var direction = System.ComponentModel.ListSortDirection.Ascending;
query = context.Orders
        .Where(o => o.Status == OrderStatus.Paid)
        .OrderBy(ec => ec.OrderPaidUtc, direction);
43
задан dbr 27 January 2009 в 08:42
поделиться

6 ответов

автонос созданный gfxmonk:

Автонос является подобным автоинструменту тестирования для Python, пользуясь превосходной nosetest библиотекой.

изменения файловой системы автоиспытательных площадок и автоматически повторно выполненный любые измененные тесты или зависимости каждый раз, когда файл добавляется, удалили или обновили. Файл рассчитывает, как изменено, если он имеет iself, измененный, или если какой-либо файл он import с изменился.

...

Автонос в настоящее время имеет собственный GUI для OSX и GTK. Если ни один из тех не доступен Вам, можно вместо этого выполнить консольную версию (с - консольная опция).

16
ответ дан dbr 12 November 2019 в 09:25
поделиться

Возможно, buildbot был бы полезен http://buildbot.net/trac

2
ответ дан macarthy 12 November 2019 в 09:25
поделиться

Для Вашего третьего вопроса возможно, trace модуль - то, в чем Вы нуждаетесь:

>>> def y(a): return a*a
>>> def x(a): return y(a)
>>> import trace
>>> tracer = trace.Trace(countfuncs = 1)
>>> tracer.runfunc(x, 2)
4
>>> res = tracer.results()
>>> res.calledfuncs
{('<stdin>', '<stdin>', 'y'): 1, ('<stdin>', '<stdin>', 'x'): 1}

res.calledfuncs содержит функции, которые были вызваны. Если Вы определяете countcallers = 1 при создании трассировщика, можно получить отношения вызывающей стороны/вызываемого. Посмотрите документы trace модуль для получения дополнительной информации.

можно также попытаться получить вызовы через статический анализ, но это может быть опасно из-за динамического характера Python.

2
ответ дан Torsten Marek 12 November 2019 в 09:25
поделиться

Сервер разработки Django имеет монитор изменения файла, который наблюдает за модификациями и автоматически перезагружает себя. Вы могли снова использовать этот код для запуска модульных тестов на модификации файла.

2
ответ дан John Millikin 12 November 2019 в 09:25
поделиться

Я только что нашел это: http://www.metareal.org/p/modipyd/

В настоящее время я использую thumb.py, но в качестве переходов в моем текущем проекте от небольшого проекта до среднего, я искал что-то, что могло бы сделать немного более тщательный анализ зависимостей, и с несколькими настройками я довольно быстро начал и начал работать с modipyd.

3
ответ дан 26 November 2019 в 23:02
поделиться
Другие вопросы по тегам:

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