介绍一个优秀的 js 库。 缘起 代码高亮的 js 库也不少,最知名的莫过于 highlightjs,支持你听过的没听过的各种编程语言,兼容你用过没用过的各种浏览器,有着多姿多彩的配色方案。然而,唯有一点我还是选择放弃了它,因为它不能很方便的自定义高亮语言。 现在我的需求是是这样的,有一个自动化测试结果的页面,里面会显示一个测试案例运行的数据,比如控制台输出 stdout, 我需要...
Appium 是移动端自动化测试的必学内容。 前言 本来并不打算写这么一篇文章,但是实践下来发现网上的各种教程里大致有两个问题。一是文章有些跟不上时代,目前 android 开发和测试的技术更新都比较快,内容有些过期。二是细节部分不是太完整,拼拼凑凑也能完成,但对新手来说就比较痛苦。那么,我也来试着总结一下自己踩过的坑。 备注:Android 自动化测试环境和开发环境并不完全相同,...
PyCharm 是很多 Python 开发者优先选择的 IDE,功能强大,跨平台,提供免费社区版,非常良心。如果你想自己给 PyCharm 添加一些功能怎么办呢? 有两个办法: 通过提需求实现,到 JetBrains 的 github 去提 issue 或者自己发 Pull Request 请他们 merge。 通过安装插件实现,你可以查找现有的插件仓库,或者,自己写一个。...
在 Windows 平台部署基于 Python 的网站是一件非常折腾的事情,Linux/Unix 平台下有很多选择,本文记录了 Flask 部署到 IIS 的主要步骤,希望对你有所帮助。 涉及工具和平台 Windows 7 x64 Python 3.4+ Flask 完成 Hello Flask 网站 这是一个最简单的 Flask 网站: # hello.py ...
你确定自己会git diff 吗? 在 git 提交过程中,存在三大环节: working tree index file (staged) commit 这三大环节中,你应该有一个大概的了解: working tree:就是你所工作在的目录,每当你在代码中进行了修改,working tree 的状态就改变了。 index file:是索引文件,它是连接...
Pypi 的发布实践。 本文仅讨论上传相关的步骤,关于如何给写一个setup.py 请参阅官方文档: https://docs.python.org/2/distutils/setupscript.html 上传前的注意事项 假设你的包已经开发完成,并且根目录必须要有一个setup.py。 最好有一个README.rst 用来描述你的轮子,虽然这不是必须的,但文...
Do we want to move on to Python 3? Well, what is your concerns? Here is a slide made by me probably can help you out. (Use the left/right arrow key to navigate back/forward.) Slides Resourc...
异常处理在任何一门编程语言里都是值得关注的一个话题,良好的异常处理可以让你的程序更加健壮,清晰的错误信息更能帮助你快速修复问题。 在Python中,和不部分高级语言一样,使用了try/except/finally语句块来处理异常,如果你有其他编程语言的经验,实践起来并不难。 异常处理语句 try…excpet…finally 实例代码 def div(a, b): try:...
如果你需要录制截屏并保存成 gif 图片格式,那么你一定不能错过 GifCam 这个神奇的小工具。它虽然只有 600K,但功能不可小觑。 GifCam (Gif 相机) 是一款免费且非常优秀的视频录制/剪辑的 GIF 动画制作软件,它的使用非常简单直观,譬如想要将某一小段视频录制成 Gif 图片,你只需将其窗口的取景框拖放到视频播放的区域,然后按下录制按钮即开始录制。它就像一个摄像机一...
之前有比较系统介绍过 Python 的装饰器(请查阅《详解 Python 装饰器》),本文算是一个补充。今天我们一起探讨一下装饰器的另类用法。 语法回顾 开始之前我们再将 Python 装饰器的语法回顾一下。 @decorate def f(...): pass 等同于: def f(...): pass f = decorate(f) @语法的好处在于...
Python 中的装饰器是你进入 Python 大门的一道坎,不管你跨不跨过去它都在那里。 为什么需要装饰器 我们假设你的程序实现了say_hello()和say_goodbye()两个函数。 def say_hello(): print "hello!" def say_goodbye(): print "hello!" # bug here if __na...
Python 中的闭包不是一个一说就能明白的概念,但是随着你往学习的深入,无论如何你都需要去了解这么一个东西。 闭包的概念 我们尝试从概念上去理解一下闭包。 在一些语言中,在函数中可以(嵌套)定义另一个函数时,如果内部的函数引用了外部的函数的变量,则可能产生闭包。闭包可以用来在一个函数与一组“私有”变量之间创建关联关系。在给定函数被多次调用的过程中,这些私有变量能够保持其持久...
断言是测试的氧气,无断言,不测试。 Python Assert 为何不尽如人意 Python 中的断言用起来非常简单,你可以在assert后面跟上任意判断条件,如果断言失败则会抛出异常。 >>> assert 1 + 1 == 2 >>> assert isinstance('Hello', str) >>> assert is...
Assertion is the basics of testing. Why not using Python Assert Assertion in Python is pretty simple, you can assert any condition by assert statement. >>> assert 1 + 1 == 2 >>&...
处理 TFS 的问题备忘。 问题描述 Once you had update in TFS workspace for Jenkin TFS plugin, you might get error like bellow: 如果你把 Jenkins 中 TFS 插件更新过,那么你有可能会遇到 Mapping 错误的问题。 [workspace] $ "C:\Program Fil...