> [ERROR] Failed to execute goal org.apache.maven.plugins:maven-clean-plugin:2.5:clean (default-clean) on project myproject: Failed to clean project: Failed to delete /home/automation/myproject/target/generated-test-sources/test-annotations -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-clean-plugin:2.5:clean (default-clean) on project myproject: Failed to clean project: Failed to delete /home/automation/myproject/target/generated-test-sources/test-annotations
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:498)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)
Caused by: org.apache.maven.plugin.MojoExecutionException: Failed to clean project: Failed to delete /home/automation/thanos/target/generated-test-sources/test-annotations
at org.apache.maven.plugin.clean.CleanMojo.execute (CleanMojo.java:215)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:498)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)
Caused by: java.io.IOException: Failed to delete /home/automation/myproject/target/generated-test-sources/test-annotations
at org.apache.maven.plugin.clean.Cleaner.delete (Cleaner.java:249)
at org.apache.maven.plugin.clean.Cleaner.delete (Cleaner.java:191)
at org.apache.maven.plugin.clean.Cleaner.delete (Cleaner.java:158)
at org.apache.maven.plugin.clean.Cleaner.delete (Cleaner.java:158)
at org.apache.maven.plugin.clean.Cleaner.delete (Cleaner.java:117)
at org.apache.maven.plugin.clean.CleanMojo.execute (CleanMojo.java:193)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:498)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)
[ERROR]
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
The command '/bin/sh -c cd /home/automation/myproject/ && mvn clean test-compile -e' returned a non-zero code: 1
我需要在Docker容器中执行Selenium测试。我知道Selenium提供集线器和节点容器,但我必须编写自己的Dockerfile,它将构建一个容器,该容器将在没有网格配置的情况下执行测试。基本上,由于某种原因,我无法使用网格。我写了一个Dockerfile。它在构建阶段失败,并说无法清理项目。
我尝试在不添加任何用户的情况下打开火狐和 chrome,即尝试通过 root 用户执行,但它不起作用。然后我添加了一个用户,但它仍然不起作用。看起来权限已授予。请指出我哪里需要许可,哪一个是?下面是我的 Dockerfile。
FROM ubuntu:latest
LABEL name="Project short intro"
author="TAFSEER HAIDER"
version="1.0"
description="my project description"
# Install Java JDK8, Maven, and Wget
RUN apt-get update
&& apt-get install firefox -y
&& apt-get -y install openjdk-8-jdk
&& apt-get install -y maven
&& apt-get install -y wget
&& apt-get clean
&& rm -rf /var/lib/apt/lists/ /tmp/* /var/tmp/*
# Install Chrome
RUN wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
RUN dpkg -i google-chrome-stable_current_amd64.deb; apt-get -fy install
# Add a user for running applications.
RUN apt-get update && apt-get install sudo -y
&& adduser --disabled-password --gecos '' automation
&& adduser automation sudo
&& echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
&& apt-get clean
&& rm -rf /var/lib/apt/lists/ /tmp/* /var/tmp/*
USER automation
# Copy myproject project to the specified directory in containerized Ubuntu Linux
COPY . /home/automation/myproject/
# Set working directory
WORKDIR /home/automation/myproject/
# Clean & compile myproject
RUN cd /home/automation/myproject/ && mvn clean test-compile -e
# Execute tests on microservices and fronted GUI by specifying the required test suite file
CMD ["mvn", "failsafe:integration-test", "-DtestSuite=frontend.xml"]
它应该在无头模式下执行我的测试。
看起来您的automation
用户没有Linux写入权限,因此他无法在Maven clean
阶段删除target
文件夹
更改此行:
COPY . /home/automation/myproject/
对此:
COPY --chown=automation . /home/automation/myproject/
我也没有在您的 Dockerfile 中看到任何真实或虚拟的显示配置,希望您将headless
参数传递给浏览器初始化,否则您的测试将不起作用。
此外,请确保遵循并行测试 - 最佳实践,特别是:
- 使用 ThreadLocal 来保存您的 WebDriver 实例和变量,这些变量不是全局的,也不是跨线程共享的
- 避免使用静态方法和字段
- 确保您的测试是独立、可重复和稳定的
您的自动化用户无权删除某些文件,我看到您使用自动化用户上下文来复制文件
COPY . /home/automation/myproject/
但是我在文件夹/主页/自动化/灭霸上看到了另一个错误....
Caused by: org.apache.maven.plugin.MojoExecutionException: Failed to clean project: Failed to delete /home/automation/thanos/target/generated-test-sources/test-annotations
您可以尝试更改用户的所有权或文件权限
chown -R $YOUR_USER /home/automation/