未知

onslaught的Python项目详细描述


对python代码库运行样式和静态检查,自动执行 有覆盖范围的测试。

具体测试如下:

  • PEP8风格。
  • pyflakes静态检查。
  • SDist创建和安装。
  • 单元测试。

它还生成分支覆盖率报告。

猛攻

  • 不需要软件包的用户安装它,
  • 具有最小的配置和定制[1]
  • 按找到的方式保留源目录,
  • 不修改基本python包,
  • 确保您的项目生成一个干净的sdist[2]
  • 测试安装过程[3]
  • 对已安装的程序包运行unittests[4]
  • 并生成分支覆盖率报告。
[1]No tests can be customized or disabled. All packages which pass the onslaught meet the same quality standards. The users current directory has no effect. Where possible, other configurability will be removed.
[2]This is strict: any ^{tt1}$ lines in the sdist creation command are onslaught failures.
[3]So your unittests pass. Great! But does your software install?
[4]Test the “production” form of your code, not dev source.

快速启动

安装

首先,使用pip安装:

$ pip install onslaught

运行

现在对您的项目运行它:

$ onslaught /path/to/my/project

-或:

$ cd /path/to/my/project ; onslaught

这将运行一系列“测试阶段”,然后生成覆盖率 报告。输出是简洁的;测试阶段的细节只是 在该阶段失败时显示。

(onstream不会修改项目目录,也不会修改当前的 目录。)

诊断

每次对项目的攻击都会在 ~/.onslaught/results/${PROJECT_NAME}。如果该目录存在时 开始新的攻击运行时,它会被删除,以便 目录总是自一致的,并且特定于最后一个 快跑。

这个结果目录有几个重要的子目录:

logs/
它包含一个描述高级操作的main.log, 包括所有子命令参数,以便可以重新运行这些参数中的任何一个 手动命令。它还包含每个子命令运行的日志 分别以十进制顺序作为前缀,因此您始终可以看到 每个命令的完整输出。
coverage/
HTML生成的覆盖率报告。用您的 浏览器。请注意,可以通过单击列标题或 使用键绑定(单击键盘图标可找到帮助)。
dist/
这包含./setup.py sdist的结果,因此您可以 交互测试用于 通过冲击进行安装和单元测试。
venv/
这是用于测试软件包安装的虚拟机。你 可以在这里交互式地尝试您的项目。

状态

这是“阿尔法”代码。没有unittests,所以这个项目还没有遵循它自己的规定(参见#8)。:-(

路线图

一旦它有了全面的测试覆盖,并且少数用户已经通知 我知道他们已经成功地使用了它,或者提交了错误,然后我会发布 “0.1”在修复错误的一个子集之后。

1的目标是要有“正确”的硬性标准(参见 Philosophy)被烤成“猛攻”。例如,也许它应该 生成并测试wheel,而不是sdist,或者它应该 测试两者。它应该与python 2和3一起工作。

在那一点上,我的设想是自动运行 针对所有python包(如pypi)和发布的结果 在某个地方。

理念

攻击是一种“徽章”。测试的软件符合 反之亦然。因此,大部分软件都不能通过 冲击测试,特别是流行的和/或发展缓慢的测试 包装。这很好。

没有理由不针对代码库运行它。如果它 失败了,你的代码库有遗留问题。如果,在 另一方面,你想获得并保留 敬畏奥梅内斯,那就去吧。;-)

注意:当前的攻击是一个不断变化的原型,所以 上面有一粒盐。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何使用Scanner用文件中的文本填充数组,然后从数组中随机选择文本?   java如何在windows中使用BlueJ进行无限缓冲   java为什么JPA中存在“太多连接”?   java如何在recyclerview中创建和填充公共字段?   当我在Google Play上发布应用程序时,很多设备都不支持java xWalkWebView 64位   HTML文档文本中位置或偏移量的java含义   java如何在JTextArea中打开文件,并使用FileReader和FileWriter类进行读写   java`elementtobelickable`只是检查它是否可见并已启用   安卓中图像下方的java绘图文本   java我如何为我的Android应用程序启用Google signin,使其只允许来自特定Google域的用户?   在超级Java调用中调用父级的内部类   java在没有定时器的情况下运行代码   java使用hashset值作为hashmap中的键   java我需要为我的应用程序获取API密钥,为此,我需要证书的MD5签名   java编写一个方法来查看字符串x是否包含字母“G”