Это структура папок моего проекта на python:
src->
stock_alerter->
tests
Внутри папок stock_alerter и тестов У меня есть пустой __init__.py
Внутри stock_alerter У меня есть файл stock.pyсодержащий:
class Stock:
def __init__(self, symbol):
self.symbol = symbol
self.price = None
Внутренние тесты У меня есть файл test_stock.py, содержащий:
import unittest
from ..stock import Stock
class StockTest(unittest.TestCase):
def test_price_of_a_new_stock_class_should_be_None(self):
stock = Stock("GOOG")
self.assertIsNone(stock.price)
Когда я запускаю test_stock.py, я получаю:
ValueError('attempted relative import beyond top-level package')
Iсделал некоторые поиски, но изменив
from ..stock import Stock
на:
stock import Stock
дает:
ModuleNotFoundError("No module named 'stock'")
Есть идеи?Кстати, я использую Visual Studio Express 2017 и запустил test_stock.py.
PS:
Добавление:
import os,sys,inspect
currentdir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))
parentdir = os.path.dirname(currentdir)
sys.path.insert(0,parentdir)
к работам test_stock.py.Теперь я думал, что Python это просто.Какой кошмар ...