Skip to content

Windows: coverage through multiprocessing not catched correctly #165

@Makman2

Description

@Makman2

Hi ;)

Recently I'm trying to get the test coverage to 100% on a windows machine, but it doesn't want to. My code under test uses an event-loop driven by a concurrent.futures.ProcessPoolExecutor. Coverage is 100% on a Linux machine, but not on Windows.

PR:
coala/coala#4475
Build on AppVeyor:
https://ci.appveyor.com/project/coala/coala/build/1.0.7774
Same build but on Linux (Travis):
https://travis-ci.org/coala/coala/builds/254572218?utm_source=github_status&utm_medium=notification
Relevant Python module/components under test:
https://github.com/coala/coala/tree/8f4113a2f471acf4c0121199c6ebb9b29dfa84ff/coalib/core, specificially

The missing lines are the ones inside def execute_task.

setup.cfg (and yes, coverage is enabled ;D):
https://github.com/coala/coala/blob/8f4113a2f471acf4c0121199c6ebb9b29dfa84ff/setup.cfg#L32

Exchanging the ProcessPoolExecutor with a ThreadPoolExecutor does the trick and produces full coverage. However it would be nice to have everything being tested with a ProcessPoolExecutor (especially due to possible pickling issues on Windows for subprocesses).

Not proven assumption:
I have the feeling that other parts of the code only run through a subprocess is measured properly, only those two modules under test don't work.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions