一般来说,应该有单元测试来涵盖个别 classes;必须有集成测试来涵盖端到端的场景,如构建,合并和查询。单元测试必须独立运行(不需要外部沙箱)。
mvn clean test 运行单元测试,它的测试覆盖范围有限。dev-support/test_all_against_hdp_2_4_0_0_169.sh 运行集成测试,有很好的覆盖率。nohup dev-support/test_all_against_hdp_2_4_0_0_169.sh < /dev/null 2>&1 > nohup.out & 以无人值守的方式运行集成测试。运行 mvn verify -Dhdp.version=2.4.0.0-169 (假定您运行在 HDP 2.4 沙箱上)是运行完整的所有测试套件所需的全部内容。
它将按顺序执行以下步骤:
1. Build Artifacts 2. Run all UTs (takes few minutes) 3. Provision Cubes on the sandbox environment for IT uasge (takes 1~2 hours) 4. Run all ITs (takes few tens of minutes) 5. Verify jar stuff
如果您的代码改动很小那么只需要运行 UT,使用: mvn test 如果您的沙箱已经配置,并且您的代码更改不会影响沙箱配置的结果,(并且您不想等待数小时的配置),只需运行以下命令来单独运行 UT 和 IT: mvn test mvn failsafe:integration-test
测试用的 cube 配置确实会运行 kylin cube 作业,以在沙箱中准备样例 cube。这些准备好的 cubes 将会被集成测试使用,当前准备步骤与 maven 预集成测试阶段绑定,且其包含运行 BuildCubeWithEngine(需要 HBase),BuildCubeWithStream(需要 Kafka)。您可以在沙箱或进行开发的计算机中运行 mvn 命令。对于后者情况您需要在 $KYLIN_HOME/examples/test_case_data/sandbox/kylin.properties 中设置 kylin.job.use-remote-cli=true。 尝试将 -DfastBuildMode=true 附加到 mvn verify 命令,通过跳过增量 Cubing 来加速配置。