从外部库中排除单元测试

Excluding unit tests from external library

我在一个 Android 项目中用 bouncyCastle 新替换了 spongyCastle:

implementation "org.bouncycastle:bcpkix-jdk15on:$project.bouncyCastleVersion"

从那时起,在 Jenkins(我们的 CI)上似乎有从这个库执行的测试,这是真的吗?我从未见过自动执行单元测试的外部库。现在的问题是我看到很多失败的测试,例如:

org.bouncycastle.pqc.crypto.qtesla.QTeslaKeyEncodingTests.testDecodeEncodePrivateKeyQT3P    27 ms   1
 org.bouncycastle.pqc.crypto.qtesla.QTeslaKeyEncodingTests.testDecodeEncodePublicKeyQT3P

有没有办法从 gradle 中的导入库中排除所有单元 tets?

idk 如果它有帮助,但我的 CI 有一些与海绵城堡相关的问题。我通过忽略对其包的检查来解决它们。 在app.gradle中添加:

  lintOptions {
    lintConfig file("lint.xml")
  }

lint.xml

<lint>
  <issue id="InvalidPackage">
    <!-- ignore Invalid Package check for spongycastle -->
    <ignore path="**/*spongycastle*.jar"/>
  </issue>
</lint>

我的问题是 linting,但您也可以忽略它进行测试。

尝试将您的测试命令更改为:

./gradlew --stacktrace testDebug --tests=your.package.name createDebugCoverageReport mergeAndroidReports --continue || true

排除任何单元测试可以在build.gradle中使用:

android {
  testOptions {
    unitTests {
      all {
        //exclude '**/QTeslaKeyEncodingTests.*'
        exclude 'org.bouncycastle/**'
      }
    }
  }
}