Python 測試驅動開發讀書筆記(一)使用功能測試協助安裝Django

使用功能測試協助安裝Django

本章節知識分爲兩部分
一是測試驅動開發(Test-Driven Development,TDD)的基礎知識;
二是從零開始寫一個Web的應用,並用Selenium進行功能測試和單元測試;
會使用到的Django進行Web應用開發,使用Git進行版本控制

但我們已經決定要開發一個網站。Web 開發的第一步通常是 安裝和配置 Web 框架。下載這個,安裝那個,配置那個,運行這個腳本……但是,使用 TDD 時要轉換思維方式。做測試驅動開發時,你的心裏要一直記着測試山羊,像山羊一樣 專注,咩咩地叫着:“先測試,先測試!”
在 TDD 的過程中,第一步始終一樣:編寫測試。
首先要編寫測試,然後運行,看是否和預期一樣失敗,只有失敗了才能繼續下一步——編 寫應用程序。請模仿山羊的聲調複述這個過程。我就是這麼做的

測試驅動開發的基本思想就是在開發功能代碼之前,先編寫測試代碼。也就是說在明確要開發某個功能後,首先思考如何對這個功能進行測試,並完成測試代碼的編寫,然後編寫相關的代碼滿足這些測試用例。然後循環進行添加其他功能,直到完全部功能的開發。

本地Django框架搭好後,先進入虛擬空間

workon superlists

創建superlists/functional_tests.py,檢查代碼是否一致
注:代碼編輯環境可以選擇GitBash或者Pycharm,我是前者,需要注意的是,要找到你這段代碼的路徑

from selenium import webdriver

browser = webdriver.Firefox()		#selenium調用瀏覽器
browser.get("http://localhost:8000")	# 訪問地址

assert 'Django' in browser.title	# 斷言瀏覽器打開後是否有“Django”字段

在這裏插入圖片描述

有了這個Case後,我們現在需要編寫功能測試,對代碼進行測試
注意: 這裏用到了Selenium 庫一些方法,具體可以查看:https://blog.csdn.net/sevensolo/article/details/93410613

在這裏插入圖片描述
如果看到關於導入 Selenium 的錯誤,或者讓你查找“geckodriver”錯誤,需要檢查Selnium驅動得版本,我本地的版本是

Git bash中運行代碼,會在本地打開瀏覽器,並且輸入地址,提示“無法連接”,這裏沒有啓動Django服務,後續還有很多類似的錯誤,先發現錯誤,再取解決錯誤
在這裏插入圖片描述

啓動Django服務

啓動Django創建項目

$ django-admin.py startproject superlists

Gitbash 裏進入自己指定的目錄,使用下面命令會自動創建文件夾,並會按目錄創建以下子目錄,結構如下:

進入項目根目錄找到manage.py並啓動
在這裏插入圖片描述
我們在superlists目錄下,輸入下面命令,運行開發服務器

 python manage.py runserver

在這裏插入圖片描述

Django 的開發服務器便在設備中運行起來了。讓這個命令一直運行着,再打開一個命令行窗口(進入剛剛打開的文件夾),在其中再次運行測試:

新開一個窗口後,進入superlists目錄,輸入python functional_tests.py,啓動火狐瀏覽器主頁爲空白頁
手動輸入:http://localhost:8000/
會顯示下面,表示服務區正在運行
在這裏插入圖片描述

創建Git倉庫

我們先把functional_tests.py 移到superlists 文件夾中

然後執行git init 命令,創建倉庫並使用功能測試協助安裝Django

$ ls
superlists functional_tests.py geckodriver.log
$ mv functional_tests.py superlists/
$ cd superlists
$ git init .
Initialised empty Git repository in /.../superlists/.git/:

將寫好的functional_tests.py,移動到相應目錄下後,執行初始化空的Git 倉庫:
注意:$ git init .而不是$ git init. init和.之前有個空格
在這裏插入圖片描述

自此工作目錄都是頂層superlists 文件夾
從現在起,我們會把頂層文件夾superlists 作爲工作目錄。
(簡單起見,我在命令列表中都將使用/…/superlists/ 表示這個目錄。但實際上,這個目錄的真實地址可能是/home/kind-reader-username/my-python-projects/superlists/。)
我提供的輸入命令都假定在這個目錄中執行。同樣,如果我提到一個文件的路徑,也
是相對於這個頂層目錄而言。因此,superlists/settings.py 是指次級文件夾superlists 中
的 settings.py。

根據書中提示,初始化後,後續所有操作都再頂層superlists 文件夾中

這裏有一點很奇怪,按照作者的話,剛纔將functional_tests.py從頂級superlists/目錄下移動到superlists/superlists/次級目錄下,但是下面還有其他操作,有點迷,我只好又移出來了 :)

初始化之後,我們看一下要提交的文件:

$ ls
db.sqlite3 manage.py superlists functional_tests.py

db.sqlite3 是數據庫文件,無須納入版本控制。前面見過的geckodriver.log 是Selenium 的日誌文件,也無須跟蹤變化。我們要把這兩個文件添加到一個特殊的文件.gitignore 中,讓Git 忽略它們:

# git提交時忽略db.sqlite3和geckodriver.log
$ echo "db.sqlite3" >> .gitignore
$ echo "geckodriver.log" >> .gitignore

接下來,我們可以添加當前文件夾(“.”)中的其他內容了:

$ git add .
$ git status

這裏需要注意的是,我git add .時,報錯如下,提示未初始化,我就git init .,重新初始化了以下,然後可以正常添加了
在這裏插入圖片描述
在這裏插入圖片描述

添加了很多.pyc 文件,這些文件沒必要提交。將其從Git 中刪掉,並添加到.gitignore 中:
在這裏插入圖片描述

現在,來看一下進展到哪裏了。(你會看到,我使用git status 的次數太多了,所以經常會使用別名git status

在這裏插入圖片描述
開始做第一提交:

$ git add .gitignore
$ git commit

輸入git commit 後,會彈出一個編輯器窗口,讓你輸入提交消息。
在這裏插入圖片描述
進入insert編輯輸入First commit 後,:wq!保存退出,界面提交信息
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章