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

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

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…

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 {
}

@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

=)

Log in to reply

Looks like your connection to Agile Testers was lost, please wait while we try to reconnect.