《Python Web 开发-测试驱动开发》读书笔记(1)

16 篇文章 0 订阅

    开发第一件事情要做的就是配置好环境,装上Django和selenium。接下来就可以开始照着书上代码来撸了。


  1.1 遵从测试山羊的教诲,没有测试什么也别做

    functional_tests.py

from selenium import webdriver

browser = webdriver.Firefox()
browser.get('http://localhost:8000')
assert 'Django' in browser.title

    这段代码看着很简单,跑一下就好了,实质上坑非常多。


    坑1: Firefox有个单独的驱动叫geckodriver,不装这个就会报错,提示'geckodriver'要在PATH里

    解决方法:1. 到github下载geckodriver这个驱动

                   2. 安装并解压,把geckodriver的执行文件放到/usr/local/bin里(/usr/local/bin/已经在PATH里)

    第2步花了我最长的时间,一开始不知道Mac的PATH和Windows不一样,是没有一个界面能直接添加的,只能先打开Terminal,然后 sudo vi ~/.bash_profile, 再添加一行 export PATH=$PATH:/Applications/geckodriver进去。执行的时候发现第2个错误,叫'NotADirectoryError: [Errno 20] Not a directory'。这时候才明白放在PATH里的必须是文件夹,不是执行文件。于是便将geckodriver挪到了/usr/local/bin里,再执行上述代码,终于跑通了,Firebox浏览器也出来了。


    坑2: 书中默认本地是开了服务端的,端口是8000

    解决方法: 对照着flask的教程写了个最简单的服务端,让测试程序有服务端连就可以了。

    flask_server.py

from flask import Flask

app = Flask(__name__)

@app.route('/')
def home():
    return('<h1>Hello Flask</h1>')

if __name__ == '__main__':
    app.run(debug=True)

没有服务端的情况下执行functional_tests.py会有'reach error page'的错误。其实可以不用连localhost的,换成任意一个网站后续的Assert的代码都是可以运行的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值