Нос, не могущий найти тесты в человечности

string[] bits = list.Split(','); // Param arrays are your friend
for (int i=0; i < bits.Length; i++)
{
    bits[i] = "'" + bits[i] + "'";
}
return string.Join(",", bits);

Или Вы могли использовать LINQ, особенно с версией Строки. Соединение, которое поддерживает IEnumerable<string>...

return list.Split(',').Select(x => "'" + x + "'").JoinStrings(",");

существует реализация JoinStrings в другом месте на ТАК... Я взгляну для него.

РЕДАКТИРОВАНИЕ: Ну, нет вполне JoinStrings, о котором я думал, таким образом, здесь это:

public static string JoinStrings<T>(this IEnumerable<T> source, 
                                    string separator)
{
    StringBuilder builder = new StringBuilder();
    bool first = true;
    foreach (T element in source)
    {
        if (first)
        {
            first = false;
        }
        else
        {
            builder.Append(separator);
        }
        builder.Append(element);
    }
    return builder.ToString();
}

В эти дни string.Join имеет универсальную перегрузку вместо этого, хотя, таким образом, Вы могли просто использовать:

return string.Join(",", list.Split(',').Select(x => $"'{x}'"));
52
задан Vikrant 2 November 2016 в 19:47
поделиться

2 ответа

Такое поведение почти наверняка связано с тем, что имена ваших файлов не соответствуют поведению проверки соответствия носа. Из носа docs :

носа автоматически собирает тесты из исходных файлов Python, каталогов и пакетов, найденных в его рабочем каталоге (по умолчанию это текущий рабочий каталог). Любой исходный файл, каталог или пакет python, который соответствует регулярному выражению testMatch (по умолчанию: (?: ^ | [B _.-]) [Tt] est), будет собран как тест (или исходный код для набор тестов).

Особое внимание было уделено мне.

Некоторые примеры имен, которые будут соответствовать:

  • TestFoo.py
  • Foo-Test.py
  • Foo_Test.py
  • Foo.Test.py (обратите внимание, что этот попытается импортировать Foo и вызовет исключение, если не сможет)

Имя, которое выглядит , как будто оно соответствует,

... убедитесь, что ваши «тестовые» каталоги на самом деле являются модулями (у них есть пустой файл __ init __. Py ).

62
ответ дан 7 November 2019 в 08:56
поделиться

The other thing which always gets me with nose is that it won't run tests in executable files. I'm not exactly sure why that would make a difference across Mac/Ubuntu, but it's worth a shot.

Make sure that the scripts didn't somehow get chmod +x'd on the Mac… And if they did, fix them with chmod -x $(find tests/ -name '*.py').

104
ответ дан 7 November 2019 в 08:56
поделиться
Другие вопросы по тегам:

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