Problema de teste de unidade do projeto Kotlin Multiplatform


8

Hoje acabei de atualizar meu Android Studio para

Android Studio 3.5.2
Build #AI-191.8026.42.35.5977832, built on October 31, 2019
JRE: 1.8.0_202-release-1483-b49-5587405 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
macOS 10.15.1

Atualizei o Android Studio porque ele me indica um erro quando a versão do kotlin está abaixo de 1.3.60.

No entanto, estou enfrentando problemas com o arquivo de teste da unidade. Anteriormente, eu posso executar o teste de unidade sem nenhum problema. Agora, quando clico no botão Executar, além do nome da função (à esquerda), ele mostra Nada aqui.

insira a descrição da imagem aqui

Abaixo estão todas as minhas dependências

// build.gradle

buildscript {
ext.kotlin_version = '1.3.60'
repositories {
    google()
    jcenter()
    maven { url "https://kotlin.bintray.com/kotlinx" }
}

dependencies {
    // classpath 'com.android.tools.build:gradle:3.4.1'
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    classpath "org.jetbrains.kotlin:kotlin-serialization:$kotlin_version"
}
}

allprojects {
  repositories {
    google()
    jcenter()
  }
}

task clean(type: Delete) {
   delete rootProject.buildDir
}


 apply plugin: 'kotlin-multiplatform'
 apply plugin: 'kotlinx-serialization'

kotlin {
targets {
    final def iOSTarget = presets.iosX64 // Simulator

    fromPreset(iOSTarget, 'iOS') {
        binaries {
            framework('SharedCode')
        }
    }
    fromPreset(presets.jvm, 'android')
}

sourceSets {
    commonMain {
        dependencies {
            api 'org.jetbrains.kotlin:kotlin-stdlib-common'
            implementation "org.jetbrains.kotlin:kotlin-test-common:$kotlin_version"
            implementation "org.jetbrains.kotlin:kotlin-test-annotations-common:$kotlin_version"
            implementation "org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version"
            implementation "org.jetbrains.kotlin:kotlin-test:$kotlin_version"
        }
    }

    iOSMain {
        dependsOn commonMain
    }

    androidMain.dependencies {
        api 'org.jetbrains.kotlin:kotlin-stdlib'
    }

    commonTest {
        dependsOn commonMain
    }
}
}

Há algo que eu perdi nesta nova versão do Android Studio e kotlin. Eu tenho lutado com isso por horas. Navegou na Web, mas parece que não conseguiu encontrar ajuda.

obrigado


Obrigatório, você tentou invalidar caches e reiniciar?
Evgeny Bovykin 26/11/19

@EvgenyBovykin senhor sim, tentou que já, e nada diferente
alvinWB

Eu enfrento o mesmo problema ......
James Fu


1
Também registrei um problema no jetbrains: youtrack.jetbrains.com/issue/KT-25065
hardysim

Respostas:


0

A instalação limpa do Android Studio corrigiu esse problema. Nunca pensei que esse problema ocorresse. Atualizado o Android Studio várias vezes no passado, e este é o meu primeiro encontro desse tipo.


Tentei instalar mesmo limpo em um computador novo, mas o problema permanece (também na versão 3.5.3).
Pecan

Também enfrento o mesmo problema, e ele exibe "nada aqui" no meu teste comum, mas funciona bem no meu teste do Android. Eu preciso executar o teste escrevendo a configuração por mim mesmo para executar o código no teste comum. Caso contrário, você pode tentar executar todos os testes por linha de comando.
James Fu

Isso acontece para mim desde 3.5.x até 3.6 estável hoje. Tentei limpar, reinstalar, caixa de ferramentas jetbrains e downloads independentes etc. Nada ajuda.
hardysim 25/02

O uso do IntelliJ normal (o mais recente) mostra as opções para executar / depurar em cada teste, mas clicar nele mostra apenas "Nenhuma tarefa disponível".
hardysim 25/02

Ele funciona em um novo projeto (a partir do assistente "novo projeto" usando "Mobile Shared Library | Gradle") no IntelliJ 2019.3.3. Mas abrir o mesmo projeto no Android Studio 3.6 não ("Nada aqui").
hardysim 25/02

0

No meu caso, esses problemas ocorreram quando eu atualizei de

  • Android Studio 3.5.3 e versão do plugin Kotlin v1.3.50-release-Studio3.5-1

para

  • Android Studio 3.6.3 com o plugin Kotlin 1.3.71-release-Studio3.6-1

Todos os meus testes comuns do Kotlin MPP não estavam sendo executados a partir da função lateral esperada do IDE, "verde", e também exibiram a mensagem Nada aqui .

Tentei algumas coisas, uma delas sendo uma desinstalação completa e depois a instalação, mas nada parecia funcionar.

O que acabou funcionando para mim foi (com algumas ressalvas):

  • criou um novo teste (funciona com testes existentes também, mas apenas como exemplo)

foto 1

para garantir que nada aqui seja exibido.

Então:

  • abra o menu suspenso ao lado do emulador selecionado e clique em Editar configurações
  • em JUnit Android, clique no botão + para adicionar uma nova configuração
  • deve ficar assim:

pic2

verifique se o tipo de teste é Class e se você possui o caminho correto para o arquivo. Por exemplo:

com.my.path.is.correct.MyNewTestCase

Além disso, verifique se você possui o módulo correto para o Kotlin comum; no meu caso, era comum (não commonTest).

Após o procedimento acima, você poderá executar a classe de teste no botão principal Executar (novamente, ao lado da lista suspensa Emulador) e até executá-la como Depuração .

O botão de execução "verde" ao lado da função continuará dizendo Nada aqui, exceto adicionar um ponto de interrupção e executar a nova configuração a partir do botão principal de depuração , funciona para mim:

insira a descrição da imagem aqui

Obviamente, isso não é perfeito, mas foi a única maneira de fazê-lo funcionar no IDE que eu pude encontrar.

Espero que ajude!

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.