Исключая юнит-тесты из внешней библиотеки - PullRequest
1 голос
/ 18 февраля 2020

Я недавно заменил spongyCastle на bouncyCastle в проекте Android:

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?

Ответы [ 3 ]

1 голос
/ 20 февраля 2020

Чтобы исключить любой модульный тест, в build.gradle может использоваться следующее:

android {
  testOptions {
    unitTests {
      all {
        //exclude '**/QTeslaKeyEncodingTests.*'
        exclude 'org.bouncycastle/**'
      }
    }
  }
}
0 голосов
/ 18 февраля 2020

Попробуйте изменить команду теста на:

./gradlew --stacktrace testDebug --tests=your.package.name createDebugCoverageReport mergeAndroidReports --continue || true
0 голосов
/ 18 февраля 2020

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>

Моя проблема была с линтингом, но вы, вероятно, можете проигнорировать его для тестирования тоже.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...