Структура проекта программирования Python с модульным тестированием - PullRequest
0 голосов
/ 14 мая 2018

Я программировал некоторое время, но никогда не углублялся в это.Сейчас я работаю в исследовательском центре, и мне нужно сделать свои вещи связными и совместимыми.Мои коллеги предложили мне «Стандартный» метод организации моего проекта:

Project
  |_ LICENCE.txt
  |_ README.txt

  |_ code
     |_ main.py
     |_ __init__.py

  |_ tests
     |_ context.py
     |_ test_main.py

Таким образом, они говорят, что будет проще проводить модульное тестирование и все.

Я посетил десяткивеб-сайты, которые делают то же самое, поэтому я подумал, что это не так уж плохо: неправильно.Сейчас я целыми выходными пытаюсь сделать эту работу, и мне кажется, что я становлюсь холоднее.

Вот что у меня есть: Изображение IDE со структурой проекта с context.py открытым вокно

Из того, что я прочитал за последние несколько дней, это правильный метод, моя проблема в том, что как бы я его ни писал, код не распознает ни bidon.py, нифункции, определенные в нем.

bidon.py - это просто файл, содержащий

def add(x, y):
    return x+y


def sub(x, y):
    return x-y

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

Но почему это не работает, хотя я добавил путь?Я пытался (в context.py):

import code

import code
import bidon

from code import bidion

from code import *

from code import bidon
from bidon import *

from code import bidon
from bidon import add

, ни один из них не работал.

Становится хуже, когда я пытаюсь использовать context.py в тестовом файле.Например, в test_bidon.py у меня есть

import unittest
from .context import code

class TestBidon(unittest.TestCase):
    def test_add(self):
        result = add(10, 5)
        self.assertEqual(result, 15)


if __name__ == "__main___":
    unittest.main()

Это создает ошибку, сообщающую мне, что test_bidon.py не является пакетом?Опять же, я попробовал несколько комбинаций, ни один не работал.Пожалуйста, помогите мне понять это!У меня нет выбора, и я не хочу тратить еще один день на поиски ничего.

1 Ответ

0 голосов
/ 15 мая 2018

Я нашел способ сделать то, что хотел. Я сделал github из своей базовой архитектуры проекта, как я хотел. В установочном файле все еще есть работа, но мастер теперь работает.

URL: https://github.com/PyMarc2/BasicProjectArchitecture

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

(os.path.abspath(os.path.join(os.path.dirname(__file__), testFolderNameSetup)))

Эта команда и спасла меня.

Спасибо!

...