【问题标题】:How can I generate coverage info per test using stack hpc?如何使用堆栈 hpc 生成每个测试的覆盖率信息?
【发布时间】:2017-09-26 15:44:53
【问题描述】:

我想每次测试运行生成一份覆盖率报告,而不是为整个测试套件生成一份覆盖率报告。我所做的是提取所有单独的测试,然后为每个测试运行TASTY_PATTERN=testname stack test proj --coverage,在每个测试之间归档生成的 HTML 报告文件。这可行,但生成的报告总是报告值,就好像所有测试都已运行一样,文件中的覆盖率信息不可能被测试触及。

我需要做什么才能正确清理数据并生成此信息?

【问题讨论】:

  • 可能会根据需要拆分您的测试套件并运行stack clean; stack build; stack path --local-hpc-root PATH-FOR-projA; stack test projA --coverage 等等。 stack docs 中描述了另一种解决方案
  • 我们有大约 50 个测试(并且还在增加),因此将每个单独的测试拆分到自己的包中并不是一个解决方案。这里有一些我不太明白的地方:作为我正在运行的单个测试的一部分,not 运行的函数的覆盖率信息来自哪里?
  • 很遗憾,我没有回答您的问题。也许在github.com/commercialhaskell/stack/issues 上发布会有所帮助

标签: haskell haskell-stack


【解决方案1】:

这个问题是由一些测试代码作为测试树创建的一部分执行而不是测试树执行引起的,因此即使过滤除一个之外的所有测试,我们也会在没有任何报告的情况下累积此代码的覆盖率。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-07
    • 2015-02-02
    • 1970-01-01
    • 2022-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-02
    相关资源
    最近更新 更多