Publicidade - Adsense

Cucumber + Android Espresso



  • Boa tarde pessoal,

    Alguém aqui já usou Cucumber com o Espresso e teve dificuldade?

    Segui 3 exemplos do github e ainda estou com problemas pra “casar” os dois.



  • @priformaggio detalha mais um pouco que tipo de problema que você está tendo :)



  • Então @Leonardo-Galani , estou tendo problemas em relação a usar o AndroidJUnitRunner para inicializar o CucumberInstrumentationCore. Parece que não reconhece .

    Dá erro que não encontra a Instrumentation.

    E a minha está igualzinha a desse link: https://medium.com/@Alex_Fogleman/into-the-belly-of-the-beast-ui-testing-an-android-app-with-cucumber-and-espresso-4a65ae61539a#.s0i6yr5dj


  • MVP

    Opa, beleza?
    Então, um stack do erro ia ficar legal.
    Mas adiantando uma aposta, já tentou extender a instrumentação com o MonitoringInstrumentation ?



  • Então @Ramses-Saccol-de-Almeida , eu mapeando outra instrumentation lá no build.gradle heheheheehe

    Mas… agora estou com outro problema.

    Estou enfrentando conflito de dependencia :

    Error:Execution failed for task ‘:app:transformClassesWithJarMergingForDebugAndroidTest’.

    com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: org/hamcrest/MatcherAssert.class

    Já coloquei esse hamcrest ai …

    *Obs : sou nova com espresso


  • MVP

    Já tentou algo como

    exclude module: 'Módulos que está dando erro'
    

    No gradle??

    Já vi gente fazer isso

    configurations {
        all*.exclude group: 'org.hamcrest', module: 'hamcrest-core'
    }
    

    ou

     buildTypes {
           release {
              multiDexEnabled true;
          }
     }
    

    E resolver esse problema…



  • Esse do configurations eu nao tinha tentado , só o multiDexEnabled.

    Deu certo aqui agora! Valeu =D



  • Revivendo novamente esse tópico … rs

    Eu to com esse simples erro (mentira, nao sei se é simples) :

    cucumber.runtime.android.MissingStepDefinitionError:
    
    @Then("^the transfer is made with success$")
    public void the_transfer_is_made_with_success() throws Throwable {
    // Write code here that turns the phrase above into concrete actions
    throw new PendingException();
    }
    
    at cucumber.runtime.android.AndroidInstrumentationReporter.endOfScenarioLifeCycle(AndroidInstrumentationReporter.java:153)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:515)
    at cucumber.runtime.Utils$1.call(Utils.java:37)
    at cucumber.runtime.Timeout.timeout(Timeout.java:13)
    at cucumber.runtime.Utils.invoke(Utils.java:31)
    at cucumber.runtime.RuntimeOptions$1.invoke(RuntimeOptions.java:290)
    at $Proxy2.endOfScenarioLifeCycle(Native Method)
    at cucumber.runtime.model.CucumberScenario.run(CucumberScenario.java:47)
    at cucumber.runtime.model.CucumberFeature.run(CucumberFeature.java:165)
    at cucumber.runtime.android.CucumberExecutor.execute(CucumberExecutor.java:112)
    at cucumber.api.android.CucumberInstrumentationCore.start(CucumberInstrumentationCore.java:88)
    at br.com.uol.ps.test.cucumber.runner.CucumberEspressoRunner.onStart(CucumberEspressoRunner.java:31)
    at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1701)
    
    Tests ran to completion.
    

    ***** Lembrando que o step ai, escrevi do jeitinho que tá na feature . E não tem nada de espaços a mais…

    Já se depararam com esse tipo de erro? Não sei mais o que fazer…


  • MVP

    Pergunta marota:

    • Onde estão os steps? (e os arquivos de feature)?

    Normalmente eu faço uma coisa marota assim:

    @CucumberOptions(plugin = {"html:target/cucumber", "json:target/cucumber.json"},
    features = {"src/stuff/com/resource/"},
    glue="stuff.com.steps")
    public class RunCukesTest 
    {
    	
    }
    

    E dai nos steps tem o caminho das pedras…



  • o meu tá quase igual ao seu, com diferença que não tenho o plugin :

    @RunWith(Cucumber.class)
    @CucumberOptions(features = "assets.features",
            glue = "java.br.com.pse.ps.v2.flowTests.TransferSteps",
            dryRun = true,
            monochrome = true)
    public class TestRunner {
    }
    

  • MVP

    @priformaggio disse em Cucumber + Android Espresso:

    @RunWith(Cucumber.class)
    @CucumberOptions(features = “assets.features”,
    glue = “java.br.com.pse.ps.v2.flowTests.TransferSteps”,
    dryRun = true,
    monochrome = true)
    public class TestRunner {
    }

    Pode ser bobo, já tentou ajustar assim:

    @RunWith(Cucumber.class)
    @CucumberOptions(features = "assets/features",
            glue = "java.br.com.pse.ps.v2.flowTests.TransferSteps",
            dryRun = true,
            monochrome = true)
    public class TestRunner {
    }
    

    ?



  • @Ramses-Saccol-de-Almeida

    O erro era porque eu mapeei a classe junto com o caminho inteiro, no glue … --"
    kkkkk

    mas valeu a dica, logo mais to de volta

    =)


 

Publicidade - Adsense

status at

13
Online

2.9k
Usuários

1.7k
Tópicos

5.7k
Posts

});