Python集成测试¶
检查代码格式¶
isort¶
isort可以按照字母顺序为所有import内容排序,并且自动分成五个不同的区域,他们是 FUTURE,STDLIB,THIRDPARTY,FIRSTPARTY,LOCALFOLDER。
通常来说,只要直接在命令行输入 isort file_directory 就可以使用默认设置达到目的。
如果想要更改默认行为,可以在 setup.cfg 中添加内容,例如把megengine视为一个三方库。
extra_third_party = megengine
官方详细文档地址 isort。
CI中的配置方法¶
#!/usr/bin/env bash
set -e
cd $(dirname $0)/..
ISORT_ARG=""
BLACK_ARG=""
while getopts 'd' OPT; do
case $OPT in
d)
ISORT_ARG="--diff --check-only"
BLACK_ARG="--diff --check"
;;
?)
echo "Usage: `basename $0` [-d]"
esac
done
isort $ISORT_ARG -j $(nproc) -rc .
black $BLACK_ARG --target-version=py36 -- .
静态代码检查¶
mypy¶
mypy也是一个静态代码分析工具,通常用来辅助pylint以获得更强大的检查能力。
CI中的配置方法¶
set -e
cd $(dirname $0)/..
mypy mgeconvert test --show-error-codes --ignore-missing-imports || mypy_ret=$?
pylint mgeconvert test --rcfile=.pylintrc || pylint_ret=$?
if [ "$mypy_ret" ]; then
exit $mypy_ret
fi
if [ "$pylint_ret" ]; then
exit $pylint_ret
fi