我还没有看到这个具体问题的答案(行为测试框架的测试复盖工具)而且我还没有看到任何谷歌搜索结果产生足够的答案。因此。..

如何从Behave获取代码复盖率报告?我发现很难相信没有Python开发人员使用BDD方法,我发现更难相信那些使用BDD的Python开发人员在没有来自其功能测试的代码复盖率统计信息的情况下这样做。可以Coverage.py 被用来驱动行为产生代码复盖?怎么样?

有帮助吗?

解决方案

我不知道如何使用,但我使用了黄瓜用于bdd,我认为可能几乎相似。所以我认为你应该能够使用覆盖范围。您必须指定要包含在文件中的文件..(我用黄瓜使用它)。看IF 这个可能有帮助。

希望这回答你的问题:)

# .coveragerc to control coverage.py
[run]
parallel = True

# if you want to include tests append tests/*
include =
    src/*
    *src*

[paths]
source =
    src/
    */src

tests =
    tests/
    */tests
.

其他提示

从大卫的建议开始上面。

假设要测试的代码位于应用程序目录中,请将以下内容添加到 .coveragerc 文件:

[run]
source=app/
.

从终端:

coverage run $(which behave);
.

然后可以使用覆盖报告或覆盖HTML正常。如果未在 .coveragerc 文件中指定应用程序,则Coverage将测试本地的所有Python库到您的行为安装。

行为可以生成junit复盖数据和 保障计划 可以组合来自多个测试运行的这些数据,并生成HTML报告,您可以在CI环境中仔细阅读或自动发布。

以下是我目前用于生成,组合和报告与behave的复盖范围的语句:

cd your/repo/tests  # <-- Make sure you're inside your tests dir!
rm -rf behave-reports/*
behave --junit --junit-directory behave-reports
coverage combine
coverage html

rm -rf behave-reports/* 强制删除behave-reports/目录中的所有内容,以便保证我有一个新的复盖报告或根本没有(在我的情况下在CI中产生故障)。请注意,如果您在本地运行测试,则需要向您的 .gitignore 文件(或等效文件),以便您不添加和提交测试结果。

跑步行为与 --junit 将产生junit输出,而 --junit-directory flag告诉用户在磁盘上写入junit数据的位置。

跑步 coverage combine 吃掉所有的代码复盖率,并将其合并到一个复盖率文件中。

最后, coverage html 生成一个漂亮的html报告,其中包括所有合并的coverage数据。

另一个选项,使用覆盖范围来运行表现的主脚本:

coverage run /path/to/lib/python2.7/site-packages/behave/__main__.py
.

当然,您需要在您的.coveragerc中指定要包含的源文件。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top