[英]How do I import files in Python?
我正在嘗試使用pytest
來檢查功能-這是我的代碼:
# src/return_self.py
def return_self(n):
return n
# tests/return_self_test.py
import pytest
def test_1():
value = return_self(1)
assert value == 1
如何在src
文件中進行要求,以便可以使用pytest
對其進行pytest
? 我已經嘗試了幾件事:
1. import return_self
2. from src.return_self import *
3. import sys
sys.path.append('../src')
4. import imp
return_self = imp.load_source('return_self', '/source/return_self.py')
我也嘗試過在根目錄和src
目錄中使用__init__.py
文件和不使用__init__.py
文件的情況。 但是每次,我都會在錯誤E ModuleNotFoundError: No module named 'return_self'
上得到一些變化E ModuleNotFoundError: No module named 'return_self'
。 我該如何要求我的檔案?
您可以嘗試以下方法:
# tests/return_self_test.py
import os
import sys
import pytest
sys.path.insert(1, os.path.join(sys.path[0], '..'))
from src.return_self import return_self
def test_1():
value = return_self(1)
assert value == 1
首先,您必須檢查src /和tests /是否在同一目錄中,我檢查了在return_self_test.py
導入return_self
的函數,這是這樣的:
Testpy使用test_ [prefix]搜索文件,因此我建議將return_self_test.py更改為test_return_self.py
# src/return_self.py
def return_self(n):
return n
# tests/test_return_self.py
import return_self
def test_1():
value = return_self.return_self(1)
assert value == 1
最后,使用以下命令在cmd(正確的路徑)或Pycharm終端中進行測試: py.test -v和voila ! 完成 (:
我會建議您使用setuptools
方法( 這可以使您的軟件包可分發:D )
項目文件的結構:
.
├── sample
│ ├── __init__.py
│ └── return_self.py
├── setup.cfg
├── setup.py
└── tests
└── test_return_self.py
其中sample/
目錄與軟件包名稱匹配,並且還必須包含源。
最小的setup.py文件內容:
from setuptools import setup
setup(
setup_requires=['pytest-runner'],
tests_require=['pytest'],
name='sample'
)
在這里,我們正在配置我們的測試環境(您可以擴展tests_require
變量以包含更多測試需求)。
setup.cfg文件內容:
[aliases]
test=pytest
在這里,我們指定我們要在開發人員每次執行時運行pytest命令: python setup.py test
測試/ test_return_self.py
from pytest import *
from sample.return_self import return_self
def test_return_self():
assert return_self(4) == 4
樣品/ return_self.py
def return_self(n):
return n
因此,下一步是運行:
python setup.py develop
使您的軟件包可用(在運行測試時)。 如果您遇到權限拒絕問題,請執行以下操作:將--user
選項附加到上一個命令中,以指示python您想在沒有root權限的情況下使用該軟件包-簡而言之,該軟件包將安裝在userland目錄中。
最后使用以下命令運行測試:
python setup.py test
筆記:
python setup.py develop
只需要運行一次) 參考文獻:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.