本文主要是记录我在配置jenkins的过程中已经解决的或者还未解决的问题。
1、【已解决】配置构建后的邮件提醒,主要的坑有两个:
1、邮箱的密码,不是邮箱的登录密码,而是邮箱在申请pop/smtp服务之后,得到的一个授权码;
2、邮箱必须要和jenkins的管理员邮箱一致。这个点真的困扰我很久,但是在搞定之后,好像一切又是那么的合情合理。
2、【已解决】在构建maven项目的时候,不支持Java8中的lambda表达式写法,这个点也困扰了我很久。一开始我以为是我没有在Jenkins中配置jdk的原因,我在Jenkins配置了各种jdk始终不能解决这个问题。后来,怀疑是代码的pom文件中没有添加编译的插件导致,我在pom后面添加了支持的java8的插件还是不可以。后来把编译插件的版本降了几个,降了几个,降了几个,居然又可以了。编译插件如下:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
3、【未解决】运行在Docker 中的Jenkins,怎么配置测试报告,配置的路径始终找不到,会报404错误。
关于这个的问题其实有一点想法,我觉这个跟我在启动jenkins时候,没有指定路径应该有很大的关系。如果我指定了路径,应该可以找到文件夹,然后就不会报404了。
4、【未解决】为什么要用Jenkins执行自动化测试案例?
我对Jenkins构建的理解是持续集成,持续交付。我觉得不应该用来做自动化测试,因为自动化测试的项目不需要打包。即使在Jenkins构建项目的时候,会执行测试用例也只是因为这是maven项目的特性,在执行mvn install 的时候,会自动执行mvn test。正是因为mvn test 这个命令才导致Jenkins去执行了我们的自动化测试。我觉得自己没有把Jenkins用在正途上,只是用了Jenkins的小功能,比如邮件提醒和可以配置的执行频率。
5、【已解决】Jenkins构建报错
<strong>/var/jenkins_home/workspace/test_test/src/test/java/com/sayyoo/auto/autotest/SubLetContractTest.java:[206,18] error: cannot find symbol</strong>
通过对比发现是因为在这个类中使用了Lombok注解,导致maven 编译报错,从而导致mvn compiler的时候报错。有两种方法结局:
1、(不推荐)不再使用@Getter和@Setter注解,通过IDE 的快捷键生成相关的getter和setter方法;
2、(推荐)提高maven-compiler-plugin的版本
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
有了Jenkins,可以不需要通过命令行手动去执行mvn test命令,可以对所有用例的执行结果和输出的日志有很好的展示。希望过几天再回头看的时候,会认为自己现在的想法是错误的。