![](/img/trans.png)
[英]How can I change the django-behave test runner's test file discovery pattern?
[英]How to login user during Given step using django-behave
我正在使用django-behave在Django項目中運行行為測試。 在我的功能文件中,我在幾個場景中有這個給定的步驟:
Given I am logged in
到目前為止我一直在做的是使用Selenium手動完成登錄過程。 但這需要很長時間,而不是我現在正在測試的。 加上行為文件說:
請求/斜紋/ Selenium交互等應該主要進入步驟
那么在給定的步驟中我該如何登錄用戶呢? 有沒有辦法使用django.test.Client.login()? 我可以把一個會話放到一個夾具中嗎?
好的,使用這個答案來解決另一個問題 ,我已經去了:
@given('I am logged in')
def impl(context):
client = context.test.client
client.login(email='test@email.com', password='password')
cookie = client.cookies['sessionid']
# Selenium will set cookie domain based on current page domain.
context.browser.get(context.get_url('/404-loads-fastest/'))
context.browser.add_cookie({
'name': 'sessionid',
'value': cookie.value,
'secure': False,
'path': '/',
})
但它似乎仍然是間接的。
我是django-behave的原作者。 我已經打開了一張票,以改進有關如何登錄的文檔。
https://github.com/django-behave/django-behave/issues/65
我根據被測試的django系統做了不同的方式:在一個站點上,它使用標准的Django登錄,在另一個站點上,登錄是通過Ajax調用完成的,在3日,我正在使用第三方系統用於身份驗證
所以沒有單一的方法; 我像你一樣為每個系統編寫一個邏輯。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.