我正在使用 pytest 运行 pep8 检查(下面列出的所有内容都发生在 Windows 机器上):
py.test --pep8 --junitxml=reports\pep8.log
我设置了一个工作来在reports\pep8.log 中查找pep8.log 文件
但是当我运行这项工作时,我发现违规插件查找报告的路径没有意义:
生成的 xml 文件:C:\Jenkins\jobs\python-template-2\workspace\reports\pep8.log =============== 89 失败,33 跳过,1.48 秒内出现 1 个错误=================
C:\Jenkins\jobs\python-template-2\workspace>exit 1 构建步骤“Выполнить команду Windows”将构建标记为失败 错误:发布者 hudson.plugins.violations.ViolationsPublisher 由于异常 java.io.FileNotFoundException 而中止:C: \Jenkins\jobs\python-template-2\builds\2013-10-22_13-30-44\violations\file\<\failure><\testcase>C:\Jenkins\jobs\python-template-2\workspace\竞赛\迁移\0003_auto__add_votinghistory.py.xml(文件名中的语法错误) 在 java.io.FileOutputStream.open(Native Method) 在 java.io.FileOutputStream.(Unknown Source) 在 java.io.FileOutputStream.(Unknown Source) 在 hudson.FilePath.write(FilePath.java:1642) 在 hudson。 plugins.violations.generate.ExecuteFilePath.execute(ExecuteFilePath.java:40) at hudson.plugins.violations.generate.GenerateXML.execute(GenerateXML.java:47) at hudson.plugins.violations.ViolationsCollector.invoke(ViolationsCollector.java: 122) 在 hudson.plugins.violations.ViolationsCollector.invoke(ViolationsCollector.java:25) 在 hudson.FilePath.act(FilePath.java:912) 在 hudson.FilePath.act(FilePath.java:885) 在 hudson.plugins。在 hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:45) 在 hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:781) at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:753) at hudson.model.Build$BuildExecution.post2(Build.java:183) at hudson.model .AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:706) 的 hudson.model.Run.execute(Run.java:1690) 的 hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46) 的 hudson.model.ResourceController。在 hudson.model.Executor.run(Executor.java:230) 处执行(ResourceController.java:88) 完成:失败java:706) at hudson.model.Run.execute(Run.java:1690) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46) at hudson.model.ResourceController.execute(ResourceController.java:88) at hudson.model.Executor.run(Executor.java:230) 完成:失败java:706) at hudson.model.Run.execute(Run.java:1690) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46) at hudson.model.ResourceController.execute(ResourceController.java:88) at hudson.model.Executor.run(Executor.java:230) 完成:失败
另外,我尝试在不使用 pytest 的情况下启动 pep8 检查,而是使用此命令在 Windows 上查找并检查所有 .py 文件:
FOR /R %i IN (*.py) DO pep8 %i 1>>reports\pep8.log
在这种情况下,我得到以下信息:
C:\Jenkins\jobs\python-template-2\workspace>exit 1 构建步骤“Выполнить команду Windows”将构建标记为失败错误:发布者 hudson.plugins.violations.ViolationsPublisher 由于异常 java.io.FileNotFoundException 而中止:C: \Jenkins\jobs\python-template-2\builds\2013-10-15_13-31-37\violations\file\C:\Jenkins\jobs\python-template-2\workspace\notifications\email.py.xml (文件名中的语法错误) 在 java.io.FileOutputStream.open(Native Method) 在 java.io.FileOutputStream.(Unknown Source) 在 java.io.FileOutputStream.(Unknown Source) 在 hudson.FilePath.write(FilePath.java:1666) 在 hudson。 plugins.violations.generate.ExecuteFilePath.execute(ExecuteFilePath.java:40) at hudson.plugins.violations.generate.GenerateXML.execute(GenerateXML.java:47) at hudson.plugins.violations.ViolationsCollector.invoke(ViolationsCollector.java: 122)在 hudson.plugins.violations.ViolationsCollector.invoke(ViolationsCollector.java:25) 在 hudson.FilePath.act(FilePath.java:916) 在 hudson.FilePath.act(FilePath.java:889) 在 hudson.plugins。在 hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:45) 在 hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:786) at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:758) at hudson.model.Build$BuildExecution.post2(Build.java:183) at hudson.model .AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:711) 在 hudson.model.Run.execute(Run.java:1690) 在 hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46) 在 hudson.model.ResourceController。在 hudson.model.Executor.run(Executor.java:246) 处执行(ResourceController.java:88) 完成:失败java:711) at hudson.model.Run.execute(Run.java:1690) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46) at hudson.model.ResourceController.execute(ResourceController.java:88) at hudson.model.Executor.run(Executor.java:246) 完成:失败java:711) at hudson.model.Run.execute(Run.java:1690) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46) at hudson.model.ResourceController.execute(ResourceController.java:88) at hudson.model.Executor.run(Executor.java:246) 完成:失败