Spark单元测试不适用于powermockito

时间:2016-03-24 11:45:35

标签: unit-testing apache-spark powermock rdd

我正在为我的火花应用程序编写单元测试。我用powermockito来测试转换。 当我运行junit测试时,我得到了错误,

2016-03-24 17:10:10:805 INFO  - Running Spark version 1.6.0
2016-03-24 17:10:11:479 WARN  - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
2016-03-24 17:10:11:586 ERROR - Can't find user in Subject:
    Principal: NTUserPrincipal: My_userNAME
    Principal: NTSidUserPrincipal: S-1-5-21-1082354718-1040695487-3441060932-16865
    Principal: NTDomainPrincipal: MY_DOMAIN
    .............
    ...........
    Public Credential: NTNumericCredential: 1872

当我删除powermockito的udage时,上述错误消失了。我不知道为什么powermockito没有进行spark rdd转换。

2 个答案:

答案 0 :(得分:1)

我也遇到了同样的问题。我找到了解决方案,主要问题在于PowerMockRunner和spark session。这可以通过添加

来纠正
@PowerMockIgnore({"org.apache.hadoop.*","javax.*","com.sun.org.apache.*"})

它对我有用。仍然如果您遇到一些错误,请尝试找出正在调用的内部类,最后忽略它。

答案 1 :(得分:0)

@PowerMockIgnore() 将以下依赖项添加到我的 build.gradle 文件中

// https://mvnrepository.com/artifact/com.holdenkarau/spark-testing-base 测试实施组:'com.holdenkarau',名称:'spark-testing-base_2.11',版本:'2.1.0_0.7.4'