跳转到主要内容

丰富的覆盖率数据

项目描述

## Smother

![logo](docs/_static/smother.png)

[![构建状态](https://travis-ci.org/ChrisBeaumont/smother.svg?branch=master)](https://travis-ci.org/ChrisBeaumont/smother)

Smother是围绕[coverage.py](https://coverage.readthedocs.io/en/coverage-4.1/)的包装工具,用于测量代码覆盖率
对测试套件中的每个测试分别进行测量。其主要功能包括

* 使用[coverage.py](https://coverage.readthedocs.io/en/coverage-4.1/)进行快速和可靠的覆盖率跟踪。
* 能够查找访问应用代码任意部分的测试。
* 能够将版本控制差异转换为受影响测试的子集以重新运行。

## 演示

Smother包含nose和pytest的插件,并类似于coverage.py的行为

```
py.test --smother=my_module test_suite/

nosetests --with-smother --smother-package=my_module test_suite/
```

这些命令创建一个`.smother`文件,可以通过`smother` CLI进行查询

```
smother lookup foo.bar # 哪些测试访问了模块foo.bar?
smother lookup foo.bar:120-122 # 或文件中的某些行?
smother lookup foo.bar:baz # 或函数`baz`?

smother diff # 给定本地修改的仓库,哪些测试可能会出错?
smother diff | xargs py.test # 只运行它们!

smother to_coverage # 从.smother文件构建原始覆盖率文件
smother csv test.csv # 将所有(应用程序,测试)对输出到文件
```

## 为什么?

Smother被设计用来更容易地处理遗留代码库。这样的代码库通常有几个特性,使得快速迭代变得困难

* **运行时间长的测试套件。** Smother最初设计的代码库运行了11K个测试,需要近24小时的CPU时间。`smother diff`使得选择(希望更大)的子集变得更容易
需要重新运行以快速识别可能回归的测试。
**许多不同的子系统** -- 其中大多数单个开发者都不熟悉。可以使用 `smother lookup` 来探索特定模块在测试套件中是如何和在哪里被调用的。这些测试通常揭示了代码行为的隐含合同,这些合同仅从文档中并不明显。
**范围蔓延**。随着时间的推移,代码库中的抽象变得更加脆弱,
不同子系统之间的逻辑耦合更加紧密。`smother csv` 对源代码单元(行、函数或类)与测试之间的耦合进行了分类。探索这些数据通常可以提供关于
哪些子系统封装良好,哪些子系统将受益于重构的见解。

## 完整文档

[阅读文档](http://smother.readthedocs.io/en/latest/)

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

smother-0.2.tar.gz (17.9 kB 查看哈希)

上传时间

由以下支持