我试图用flask
和unittest
来包装简单的Python项目。结构相当简单:
classes
|-sysinfo
|static
|templates
|- index.html
|- layout.html
|__init__.py
|sysinfo.py
|printinfo.py
tests
|test_sysinfo.py
README.md
requirments.txt
printinfo.py
中非常简单的类:
简单的烧瓶服务器使用sysinfo.py
运行:
from flask import Flask, flash, redirect, render_template, request, session, abort
from printinfo import SysInfo
import json
obj1 = SysInfo("gb")
app = Flask(__name__)
@app.route('/')
def index():
var = json.loads(obj1.displayInfo())
return render_template('index.html',**locals())
@app.route('/healthcheck')
def healthcheck():
return "Ok"
@app.route("/api/all")
def all():
return obj1.displayInfo()
if __name__ == '__main__':
app.run(host='0.0.0.0', port=80)
del obj1
我用pythonsysinfo.py
在classes/sysinfo
文件夹中运行它,一切正常。在
所以我决定为我的应用程序运行unittest。放入classes/tests
(也尝试过classes/sysinfo/tests
)文件test_sysinfo.py
,代码:
import unittest
import printinfo
from sysinfo import sysinfo
import json
import sys
class TestFlaskApi(unittest.TestCase):
def setUp(self):
self.app = sysinfo.app.test_client()
def simple_test(self):
response = self.app.get('/health')
self.assertEqual(
json.loads(response.get_data().decode(sys.getdefaultencoding())),
{'healthcheck': 'ok'}
)
if __name__ == "__main__":
unittest.main()
当我开始的时候,我可以看到错误:
Error Traceback (most recent call last):
File "\Python\Python37-32\lib\unittest\case.py", line 59, in testPartExecutor
yield File "\Python\Python37-32\lib\unittest\case.py", line 615, in run
testMethod() File "\Python\Python37-32\lib\unittest\loader.py", line 34, in testFailure
raise self._exception ImportError: Failed to import test module: test_sysinfo Traceback (most recent call last): File
"\Python\Python37-32\lib\unittest\loader.py", line 154, in
loadTestsFromName
module = __import__(module_name) File "\classes\sysinfo\tests\test_sysinfo.py", line 2, in <module>
import printinfo ModuleNotFoundError: No module named 'printinfo'
我读了几篇关于StackOverflow的文章,一些主题是为了理解它与项目结构有关。我试图创建setup.py
和{
你能帮我弄一下适用于我的箱子的最低设置吗?我发现的所有材料都是针对具体情况写的,或者太笼统了。我不能把它用于我的案子。在
按照flask tutorial I edit
__init__.py
文件从这里启动应用程序:还应为烧瓶设置环境变量: 对于Linux和Mac:
^{pr2}$对于Windows cmd,使用set而不是export:
并运行应用程序:
自从设置了development env之后,它在本地主机上的端口5000上运行应用程序。无论如何,我需要将
from . import printinfo
添加到__init__.py
中。在没试过测试,但觉得应该行得通。如果有兴趣,很快会更新。在
刚刚学习了烧瓶教程。创建了}。使用
conftest.py
和{pytest
运行“确定”:可能相同的设置可以用于
unittest
。没试过。在相关问题 更多 >
编程相关推荐