2
我在寫單元測試有大致有以下組織的燒瓶中的應用:模板時,單元測試瓶應用
/myapplication
runner.py
/myapplication
__init__.py
/special
__init__.py
views.py
models.py
/static
/templates
index.html
/special
index_special.html
/tests
__init__.py
/special
__init__.py
test_special.py
我特別想測試的special
模塊正常工作。
我已經定義了以下內容:
在
special/views.py
:mod = Blueprint('special', __name__, template_folder="templates") @mod.route('/standard') def info(): return render_template('special/index_special.html')
在
myapplication/__init__.py
:app = Flask(__name__) def register_blueprints(app): from special.views import mod as special_blueprint app.register_blueprint(special_blueprint, url_prefix='/special') register_blueprints(app)
在
myapplication/tests/test_special.py
class TestSpecial: @classmethod def create_app(cls): app = Flask(__name__) register_blueprints(app) return app @classmethod def setup_class(cls): cls.app = cls.create_app() cls.client = cls.app.test_client() def test_connect(self): r = self.client.get('/standard') assert r.status_code == 200
雖然應用程序本身工作正常,則test_connect
單元測試失敗了TemplateNotFound: special/index_special.html
例外。
我怎麼能告訴測試哪裏可以找到相應的模板?繞過的使用Flask-testing是不是一個真正的選擇模板渲染...
使用'template_folder'說法是不可取的,事實證明:模板可以參考一些路線不會被正確配置。使用你描述的工廠方法是要走的路,只要提供的藍圖已被正確定義(並且混合藍圖與標準的'@ app.route'方式就是要求麻煩......) –