Я хочу создать несколько функций с использованием Opencv. Прежде чем реализовывать все, я хочу запустить модульный тест, чтобы убедиться, что мои зависимости работают:
Это мой общий/src/androidUnitTest/kotlin/com/ltu/ibsalib/Test.android.kt файл:
Код: Выделить всё
package com.ltu.ibsalib
import org.junit.Assert.assertTrue
import org.junit.Test
import org.junit.Assert.assertNotNull
import org.opencv.android.OpenCVLoader;
import org.opencv.core.Core
import org.opencv.imgcodecs.Imgcodecs
import org.opencv.core.Mat
class AndroidGreetingTest {
@Test
fun testExample() {
assertTrue("Check Android is mentioned", Greeting().greet().contains("Android"))
assertTrue(true)
}
}
class OpenCVTest {
@Test
fun testOpenCVVersion() {
val ocv_version = Core.VERSION
println("[IBSA] OpenCV Version: $ocv_version")
assertNotNull(ocv_version)
assertTrue(ocv_version.contains("4.10"))
}
}
class ImageQualityTest {
@Test
fun testImageQuality() {
if (OpenCVLoader.initLocal())
{
println("[IBSA] OpenCV Loaded")
}
else
{
println("[IBSA] OpenCV Not Loaded")
}
val image: Mat = Mat()
assertNotNull("[LTU] Error: ", image)
}
}
С другой стороны, это мой котлин блок в моем файле Shared/build.gradle.kts:
Код: Выделить всё
kotlin {
androidTarget {
compilations.all {
kotlinOptions {
jvmTarget = "1.8"
}
}
publishLibraryVariants("release", "debug")
}
listOf(
iosX64(),
iosArm64(),
iosSimulatorArm64()
).forEach {
it.binaries.framework {
baseName = "shared"
isStatic = true
}
}
sourceSets {
commonMain.dependencies {
//put your multiplatform dependencies here
}
commonTest.dependencies {
implementation(libs.kotlin.test)
}
val androidMain by getting {
dependencies {
implementation("org.opencv:opencv:4.10.0")
}
}
val androidUnitTest by getting {
dependencies {
implementation("org.opencv:opencv:4.10.0")
}
}
}
}
Код: Выделить всё
ImageQualityTest > testImageQuality FAILED
java.lang.RuntimeException: Method d in android.util.Log not mocked. See https://developer.android.com/r/studio-ui/build/not-mocked for details.
at android.util.Log.d(Log.java)
at org.opencv.android.StaticHelper.initOpenCV(StaticHelper.java:18)
at org.opencv.android.OpenCVLoader.initLocal(OpenCVLoader.java:31)
at com.ltu.ibsalib.ImageQualityTest.testImageQuality(Test.android.kt:34)
OpenCVTest > testOpenCVVersion STANDARD_OUT
[IBSA] OpenCV Version: 4.10.0
4 tests completed, 1 failed
Finished generating test XML results (0.005 secs) into: /home/idarevalog/GIT/ltu-tech/private/products/armaria/ibsalib/shared/build/test-results/testReleaseUnitTest
Generating HTML test report...
Finished generating test html results (0.015 secs) into: /home/idarevalog/GIT/ltu-tech/private/products/armaria/ibsalib/shared/build/reports/tests/testReleaseUnitTest
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':shared:testReleaseUnitTest'.
> There were failing tests.
[*]Я что-то упустил в тесте?
[*] Должен ли я (как-то) имитировать метод d в android.util.Log?
[*]Есть ли что-то еще, чтобы использовать OpenCV в мультиплатформе Kotlin?
< /ул>
Подробнее здесь: https://stackoverflow.com/questions/793 ... -unit-test
Мобильная версия