Due to some maintenance issues, this service has been switched in read-only mode, you can find more information about the why

and how to migrate your plugin documentation in this blogpost

Skip to end of metadata
Go to start of metadata

Plugin Information

View PIT Mutation on the plugin site for more information.

This plugin displays pitmutation report statistics.

Usage

Set up as a post-build step, after the PIT mutation tests have been run.

Configure report path, e.g. target/pit-reports/**/mutations.xml for a maven build.

The plugin needs the XML and HTML output from PIT. Also make sure that a clean target is executed before building, otherwise PIT will keep all of the old reports and it may not pick up the right one.

The report shows mutation statistics with the change since the last successful build, and you can drill down to the annotated source code at class level to see what mutations happened on each line.

1 Comment

  1. Unknown User (rudy_mu)

    I'm finally able to create the report in pipeline but when I click on the icon "Pit Mutation Report". I got this error

    I'm using Jenkins v2.104 and PIT Mutation Plugin 1.0-16

    any idea ?

    Stack trace

    java.lang.NullPointerException
    	at org.jenkinsci.plugins.pitmutation.targets.ProjectMutations.getPreviousResult(ProjectMutations.java:30)
    	at org.jenkinsci.plugins.pitmutation.targets.ProjectMutations.hashCode(ProjectMutations.java:86)
    	at java.lang.Object.toString(Object.java:236)
    	at org.kohsuke.stapler.Dispatcher.traceEval(Dispatcher.java:64)
    	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:667)
    	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845)
    	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:686)
    	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845)
    	at org.kohsuke.stapler.MetaClass$10.dispatch(MetaClass.java:374)
    	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715)
    	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845)
    	at org.kohsuke.stapler.MetaClass$10.dispatch(MetaClass.java:374)
    	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715)
    	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845)
    	at org.kohsuke.stapler.MetaClass$5.doDispatch(MetaClass.java:248)
    	at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
    	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715)
    	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845)
    	at org.kohsuke.stapler.MetaClass$5.doDispatch(MetaClass.java:248)
    	at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
    	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715)
    	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845)
    	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:649)
    	at org.kohsuke.stapler.Stapler.service(Stapler.java:238)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:841)
    	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650)
    	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)
    	at org.jenkinsci.plugins.ssegateway.Endpoint$SSEListenChannelFilter.doFilter(Endpoint.java:225)
    	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
    	at io.jenkins.blueocean.auth.jwt.impl.JwtAuthenticationFilter.doFilter(JwtAuthenticationFilter.java:61)
    	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
    	at io.jenkins.blueocean.ResourceCacheControl.doFilter(ResourceCacheControl.java:134)
    	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
    	at com.smartcodeltd.jenkinsci.plugin.assetbundler.filters.LessCSS.doFilter(LessCSS.java:47)
    	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
    	at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176)
    	at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
    	at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)
    	at com.marvelution.jenkins.plugins.jira.filter.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:51)
    	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
    	at com.marvelution.jenkins.plugins.jira.filter.OAuthFilter.doFilter(OAuthFilter.java:88)
    	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
    	at jenkins.metrics.impl.MetricsFilter.doFilter(MetricsFilter.java:125)
    	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
    	at javax.servlet.FilterChain$doFilter.call(Unknown Source)
    	at com.ceilfors.jenkins.plugins.jiratrigger.ExceptionLoggingFilter.doFilter(ExceptionLoggingFilter.groovy:29)
    	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
    	at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:157)
    	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
    	at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:64)
    	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
    	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
    	at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
    	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    	at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)
    	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    	at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
    	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    	at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
    	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    	at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
    	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    	at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93)
    	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    	at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
    	at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67)
    	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    	at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:90)
    	at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)
    	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
    	at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
    	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
    	at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
    	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
    	at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
    	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
    	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
    	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
    	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524)
    	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
    	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:190)
    	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
    	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
    	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1253)
    	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168)
    	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
    	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
    	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166)
    	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1155)
    	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
    	at org.eclipse.jetty.server.handler.RequestLogHandler.handle(RequestLogHandler.java:56)
    	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
    	at org.eclipse.jetty.server.Server.handle(Server.java:564)
    	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:317)
    	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251)
    	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279)
    	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:110)
    	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124)
    	at org.eclipse.jetty.util.thread.Invocable.invokePreferred(Invocable.java:128)
    	at org.eclipse.jetty.util.thread.Invocable$InvocableExecutor.invoke(Invocable.java:222)
    	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:294)
    	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:199)
    	at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    	at java.lang.Thread.run(Thread.java:748)