Skip to content

pytest 3.0 breaks Jenkins' "Publish JUnit test result report" for doctests #1862

Open
@icemac

Description

@icemac

Upgrading from pytest 2.9.2 to 3.0.x breaks the build step "Publish JUnit test result report" in Jenkins if a doctest is involved in the tests.

Jenins Error message:

ERROR: Build step failed with exception
.../PYTHON/Python2.7/README.txt is not a directory.
    at org.apache.tools.ant.types.AbstractFileSet.getDirectoryScanner(AbstractFileSet.java:488)
    at hudson.util.DirScanner$Glob.scan(DirScanner.java:128)
    at hudson.FilePath$42.invoke(FilePath.java:2162)
    at hudson.FilePath$42.invoke(FilePath.java:2155)
    at hudson.FilePath.act(FilePath.java:1018)
    at hudson.FilePath.act(FilePath.java:996)
    at hudson.FilePath.copyRecursiveTo(FilePath.java:2155)
    at hudson.FilePath.copyRecursiveTo(FilePath.java:2141)
    at hudson.FilePath.copyRecursiveTo(FilePath.java:2124)
    at hudson.FilePath.copyRecursiveTo(FilePath.java:2109)
    at hudson.plugins.junitattachments.GetTestDataMethodObject.attachFilesForReport(GetTestDataMethodObject.java:121)
    at hudson.plugins.junitattachments.GetTestDataMethodObject.getAttachments(GetTestDataMethodObject.java:110)
    at hudson.plugins.junitattachments.AttachmentPublisher.contributeTestData(AttachmentPublisher.java:54)
    at hudson.plugins.junitattachments.AttachmentPublisher.contributeTestData(AttachmentPublisher.java:30)
    at hudson.tasks.junit.JUnitResultArchiver.perform(JUnitResultArchiver.java:183)
    at hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:78)
    at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
    at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:779)
    at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:720)
    at hudson.model.Build$BuildExecution.post2(Build.java:185)
    at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:665)
    at hudson.model.Run.execute(Run.java:1745)
    at hudson.matrix.MatrixRun.run(MatrixRun.java:146)
    at hudson.model.ResourceController.execute(ResourceController.java:98)
    at hudson.model.Executor.run(Executor.java:410)
Build step 'Veröffentliche JUnit-Testergebnisse.' marked build as failure

Jenkins version: 2.11
JUnit Plugin version: 1.18
py: 1.4.31
pluggy: 0.3.1
plugins: flake8-0.6, cov-2.3.1, remove-stale-bytecode-2.1
Python versions: 2.7 up to 3.5 and PyPy

Contents of pytest.ini:

[pytest]
addopts = src README.txt  --flake8

The generated junit.xml file differs in the following way:

pytest 2.9.2:

<testcase classname="" file="README.txt" name="README.txt" time="0.027095079422"></testcase>

pytest 3.0.x:

<testcase classname="README.txt" file="README.txt" name="README.txt" time="0.00580596923828"></testcase>

Aka the classname is no longer empty.

Metadata

Metadata

Assignees

No one assigned

    Labels

    plugin: junitxmlrelated to the junitxml builtin plugintype: regressionindicates a problem that was introduced in a release which was working previously

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions