Итак, я реализовал следующий дизайн:
Я создал два метода, один с BeforeClass, а другой с аннотацией AfterClass в моем файле TestRunner.java.В этих методах я могу вызывать специфические файлы создания и очистки данных и передавать аргументы как объект Json.
@RunWith(Karate.class)
@KarateOptions(tags = {"~@ignore"})
public class AccountRunner {
public static Map<String, Object> result = null;
@BeforeClass
public static void create_job() throws IOException, ParseException {
Class clazz = AccountRunner.class;
URL file_loc = clazz.getResource("create-test-data-1.json");
File file = new File(file_loc.getFile());
JSONParser parser = new JSONParser();
Object obj = parser.parse(new FileReader(file));
JSONObject jsonObject = (JSONObject) obj;
Map<String, Object> args = new HashMap();
args.put("payload", jsonObject);
result = Runner.runFeature(CommonFeatures.class, "create-data.feature", args, true);
}
@AfterClass
public static void delete_investigation() {
Map<String, Object> args = new HashMap();
args.put("payload", result);
Runner.runFeature(CommonFeatures.class, "delete-job.feature", args, true);
}
}
Чтобы выполнить эти тесты через командную строку с помощью команды "mvn test", я сделал следующие изменения в pom.xml.
`<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M3</version>
<configuration>
<includes>
<include>**/*Runner.java</include>
</includes>
</configuration>
</plugin>`
С этим решением я смог запустить свойтестирует в IDE, выполняя бегуна непосредственно или из командной строки.Однако я не нашел способа выполнить все свои тесты, следуя предложенному подходу каратэ, где у меня есть файл * Test.java на уровне набора тестов, и я использую конфигурацию maven по умолчанию с «mvn test».Функции не запускаются, так как файл .feature вызывается до запуска файла Runner, в котором есть метод создания тестовых данных для тестов.
Может быть, кто-то может подсказать, что еще я мог бы сделать, чтобы использовать подход карате в бегеФайл * Test.java вместо каждого файла * Runner.java.