Как развернуть Localstack в тестах на огурцы

Я пытаюсь использовать Localstack для эмуляции AWS в своих интеграционных тестах. Авторы просят нас интегрировать Localstack с нашими тестами Java следующим образом:

import cloud.localstack.LocalstackTestRunner;
import cloud.localstack.TestUtils;

@RunWith(LocalstackTestRunner.class)
public class MyCloudAppTest {

Однако мой огуречный тест выглядит следующим образом:

@RunWith(Cucumber.class)
@CucumberOptions(  monochrome = true,
        features = "src/test/resources/",
        glue = "com/mydomain/services" )
public class MyFeatureTest {
}

Поскольку у меня не может быть двух аннотаций RunWith, может ли кто-нибудь предложить альтернативу для тестирования как Localstack, так и огурца?

Спасибо за помощь.


person João Matos    schedule 26.04.2019    source источник
comment
Вы можете вызвать огурец, используя класс Main пакета огурца.api.cli в тестовом методе junit. Бегун не требуется. Вы можете просто использовать аннотацию запуска localstack. stackoverflow.com/questions/46807307/   -  person Grasshopper    schedule 27.04.2019


Ответы (1)


Я последовал совету @Grasshopper и заставил его работать следующим образом:

@RunWith(LocalstackDockerTestRunner.class)
@LocalstackDockerProperties(services = {"dynamodb"})
public class MyFeatureTest {

    @Test
    public void test() throws IOException {
        String [] argv = new String[]{ "-g","com/mydomain/services","./src/test/resources/myFeature.feature"};
        ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
        cucumber.api.cli.Main.run(argv, contextClassLoader);
    }

}
person João Matos    schedule 30.04.2019