跳到主要内容
版本:3.0.0

在 Apache Ambari 中运行测试

本指南说明如何在 Apache Ambari 中运行不同类型的测试。有关正式测试配置,请参阅 Ambari Jenkinsfile

Java 测试

运行全部 Java 测试

运行 Ambari Server 的全部 Java 测试:

mvn -am test -pl ambari-server \
-DskipPythonTests \
-Dmaven.test.failure.ignore \
-Dmaven.artifact.threads=10 \
-Drat.skip \
-DskipAdminWebTests=true

运行指定的 Java 测试

运行指定的 Java 测试类:

mvn -am test -pl ambari-server \
-DskipPythonTests \
-Dmaven.test.failure.ignore \
-Dmaven.artifact.threads=10 \
-Drat.skip \
-DskipAdminWebTests=true \
-Dtest=AmbariServerTest

运行测试类中的指定测试方法:

mvn -am test -pl ambari-server \
-DskipPythonTests \
-Dmaven.test.failure.ignore \
-Dmaven.artifact.threads=10 \
-Drat.skip \
-DskipAdminWebTests=true \
-Dtest=AmbariServerTest#testMethodName

测试参数说明

  • -am:同时构建依赖项
  • -pl ambari-server:仅构建 ambari-server 模块
  • -DskipPythonTests:跳过 Python 测试
  • -Dmaven.test.failure.ignore:即使测试失败也继续构建
  • -Dmaven.artifact.threads=10:使用 10 个线程并行解析构件
  • -Drat.skip:跳过 Apache RAT(发布审计工具)检查
  • -DskipAdminWebTests:跳过管理 Web 界面测试
  • -Dtest:指定要运行的测试类或方法

Python 测试

运行全部 Python 测试

运行全部 Python 测试:

mvn test -pl ambari-server \
-DskipJavaTests \
-Dpython.test.mask="*_test.py" \
-Dpython.test.skip.pattern="agent_perf.py"

运行指定的 Python 测试

运行指定的 Python 测试文件:

mvn test -pl ambari-server \
-DskipJavaTests \
-Dpython.test.mask="test_file_name.py"

Python 测试参数说明

  • -DskipJavaTests:跳过 Java 测试
  • -Dpython.test.mask:匹配要运行的测试文件的模式
  • -Dpython.test.skip.pattern:匹配要跳过的测试的模式

集成测试

运行集成测试

运行集成测试:

mvn verify -pl ambari-server \
-P integration-tests \
-DskipPythonTests \
-DskipJavaTests

集成测试参数

  • -P integration-tests:启用 integration-tests profile
  • -DskipPythonTests:跳过 Python 测试
  • -DskipJavaTests:跳过 Java 测试

测试报告

测试执行后可在以下位置找到测试报告:

Java 测试报告

  • 单元测试:ambari-server/target/surefire-reports/
  • 集成测试:ambari-server/target/failsafe-reports/

Python 测试报告

  • 测试结果:ambari-server/target/python-test-results/
  • 覆盖率报告:ambari-server/target/python-coverage/
提示

调试测试失败时,请检查这些报告目录,以获取详细的测试执行日志和堆栈跟踪。