2015-04-02 4 views
3

Я новичок в python. Я пытаюсь настроить тесты для своих классов python, используя нос. Где я могу разместить активы для своих тестов?Где я могу разместить активы для своих тестов на python?

Итак, давайте скажем, что у меня есть класс, который управляет изображением. У меня есть изображение для каждого теста. Где бы я поместил эти изображения для своих тестов? Я не хочу, чтобы они были в моей производственной среде. Они предназначены только для тестирования.

+1

@ Ziz, ничего плохого в написании тестов для классов python. – alexis

+1

Обычно я просто перехожу в папку 'tests' с тестовыми модулями. Смотрите * yaml * файлы здесь: https://bitbucket.org/miohtama/cryptoassets/src/bf2c3affa5528c6e96bfcc96b0caf4b0c9a9ec27/cryptoassets/core/tests/?at=master –

+1

Лично у меня есть папка «data». Если данные не разделяются между файлами, а для каждого скрипта или даже класса есть несколько файлов, вы можете подумать о том, что для каждого из «myscript» можно использовать «test_myscript_data» (я также сделал бы их вложенными папками). Кроме того, избегайте опросов, сколько вы можете с помощью модульных тестов: они делают обслуживание кошмаром. Для случаев, когда у вас нет выбора, комментарий Микко имеет тенденцию быть нормой. Делай все, что нужно, чтобы сохранить чистоту, но ясно, что необходимо для проведения теста. –

ответ

0

Предположим, вы хотите иметь две папки рядом друг с другом, чтобы сохранить очиститель рабочего пространства, один для ваших исходных файлов на python (src/) и один для ваших тестовых активов (res/).

Возможно, это выглядит примерно так.

src/ 
    main.py 
res/ 
    image.png 

Это, безусловно, выглядит довольно чистым! Но как вы собираетесь захватить это изображение, если оно не находится в той же папке, что и ваш файл main.py?

Простое решение, вы можете использовать команду this, используя библиотеку Python os.

os.chdir("../res")

Что это делает это меняет ваш текущий рабочий каталог в запрашиваемой папку. Поэтому, если вы хотите захватить этот файл изображения, вам нужно всего лишь использовать путь "image.png".

Смежные вопросы