Home > Net >  Is there a way to map python nose2 to coverage plugin which is installed in custom location?
Is there a way to map python nose2 to coverage plugin which is installed in custom location?

Time:11-19

I have installed nose2 with the following command:

pip3 install nose2

And I have installed the coverage in the custom path with the following command:

pip3 install --target=/tmp/coverage_pkg coverage

I want to execute the test cases and generate the coverage report. Is there a way to map my coverage plugin installed in custom path to the nose2?

I tried to execute the below command:

nose2 --with-coverage

I got the following output:

Warning: you need to install "coverage_plugin" extra requirements to use this plugin. e.g. `pip install nose2[coverage_plugin]`

----------------------------------------------------------------------
Ran 0 tests in 0.000s

OK

I want to generate the coverage report by using the coverage package installed in custom path.

Can someone please explain if I can achieve this?

CodePudding user response:

I was able to achieve this using the following command:

cd <custom location where packages are installed>

python3 -m nose2  --with-coverage -s "path_to_source_dir" --coverage "path_to_source_dir"

You need to stay in the location where nose2 and coverage in installed(Custom dir/ Eg: /tmp/coverage_pkg).

For more configuration and generating junit report and coverage report we can use the unittest.cfg file and .coveragerc for controlling coverage report and unit testing.

Sample unittest.cfg:

[unittest]
plugins = nose2.plugins.junitxml
start-dir = 
code-directories = 
test-file-pattern = *_test.py
test-method-prefix = t

[junit-xml]
always-on = True
keep_restricted = False
path = nose2-junit.xml
test_fullname = False

[coverage]
always-on = True
coverage = 
coverage-config = .coveragerc
coverage-report = term-missing
                  xml

Sample .coveragerc:

[run]
branch = True
[xml]
output =coverage.xml
[report]
show_missing = True
omit=
    /test/*
    /poc1.py
    /bin/__init__.py

Use the below command for using config file and generate unittest report and coverage report.

python3 -m nose2 --config "<path to config file>/unittest.cfg"

CodePudding user response:

The error message includes the exact command you need:

pip install nose2[coverage_plugin]
  • Related