Я программировал некоторое время, но никогда не углублялся в это.Сейчас я работаю в исследовательском центре, и мне нужно сделать свои вещи связными и совместимыми.Мои коллеги предложили мне «Стандартный» метод организации моего проекта:
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 не является пакетом?Опять же, я попробовал несколько комбинаций, ни один не работал.Пожалуйста, помогите мне понять это!У меня нет выбора, и я не хочу тратить еще один день на поиски ничего.