由登錄和表單組成的 Flask 應用程式手動運行良好。但是在賽普拉斯測驗會話不可用并且測驗失敗。知道如何解決或除錯此行為嗎?
我可以看到顯示的創建專案表單。
我可以看到賽普拉斯測驗點擊“創建”按鈕。
然后手動測驗顯示專案已創建的預期訊息。
然而,自動 cypress 測驗的行為就像會話不存在一樣
應用程式.py
@app.route('/')
def homepage():
user = session.get('user')
return render_template('home.html', user=user)
@app.route('/login-test/<string:email_address>/')
def logintest(email_address):
if (app.debug):
userid = 1
user = { "email" : email_address, "uid" : userid }
session['user'] = user
else:
flash("debug is off, can't use testlogin")
return redirect('/')
@app.route('/create-project/', methods=['POST'])
def createproject():
user = session.get('user')
if (user):
flash("Project added successfully")
return redirect('/')
else:
flash("Session not found")
return redirect('/')
模板/home.html
{% if user %}
<form action="create-project" method="POST">
<input type="text" name="name" placeholder="Enter new project name">
<input type="submit" value="Create">
</form>
<a href='/logout'>destroy session</a>
{% else %}
<a href='/login'>login</a>
{% endif %}
柏樹測驗:
describe('Basic tests', () => {
it('We will use test login to login user1', () => {
cy.visit('/login-test/[email protected]/')
cy.contains('destroy session')
}),
it('We can create project', () => {
cy.get('input[placeholder="Enter new project name"]').type('ProjectNo1')
cy.get('input[value="Create"]').click().contains('Project added successfully')
})
})
uj5u.com熱心網友回復:
賽普拉斯清理測驗之間的會話,為了保留我需要添加的會話 cookie
Cypress.Cookies.preserveOnce('session')
后
cy.contains('destroy session')
請參閱:https ://docs.cypress.io/api/cypress-api/cookies#Preserve-Once
Discord cypress 頻道上的 Ravikiran 幫助我解決了這個問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/512129.html
標籤:会议柏
