Я получаю сообщение об ошибке: функции или сценарии не найдены.
Изначально я написал свою функцию, но после неоднократных неудач я попытался скопировать весь каталог src/test/java
из демо-проекта каратэ, сгенерированного с использованием архетипа, и удалил свои собственные файлы, но то, что там работает, не работает в моем собственном проекте.
Зависимость в моем pom, которая также совпадает с демонстрационным проектом:
<dependency>
<groupId>com.intuit.karate</groupId>
<artifactId>karate-junit5</artifactId>
<version>1.3.1</version>
</dependency>
Я запускаю UsersRunner.java. Ниже приведена ошибка:
org.opentest4j.AssertionFailedError: no features or scenarios found: [classpath:examples/users]
at com.intuit.karate.junit5.Karate.iterator(Karate.java:72)
Спасибо, Питер, я с нетерпением жду работы над идеей и ее запуска, как я объясню ниже: я переместил users.feature
прямо в каталог java
. Теперь я могу запустить его с абсолютным путем — /users/xploreraj/repo/myProject/ftModule
, но не с «путем к классам:», который должен быть способом введения тестов в мой проект. Должен ли «classpath:» разрешаться в путь до модуля ft, поскольку тестовые программы находятся внутри этого модуля?
все зависит от того, как настроен ваш проект. да, обычно папка src/test/java
должна быть корнем classpath:
, обратитесь к документации: github.com/karatelabs/karate#classpath - если вы все еще застряли и вам нужна помощь, следуйте этому процессу: github.com/ karatelabs/karate/wiki/Как отправить сообщение
Я исправил проблему и добавил ответ на вопрос. Еще раз, спасибо :)
Решение состоит в том, чтобы сообщить Maven, чтобы он указывал на src/test/java
, а не на src/test/resources
по умолчанию, как описано здесь: https://github.com/karatelabs/karate#folder-structure
<build>
<testResources>
<testResource>
<directory>src/test/java</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</testResource>
</testResources>
<plugins>
...
</plugins>
</build>
И тогда Karate.run("classpath:<path_to_feature_directory_or_file>")
будет работать правильно.
Я смог понять это только после того, как использовал абсолютный путь для отладки проблемы. Надеюсь, это поможет другим.
надеюсь, кто-то еще может помочь здесь, но, по моему мнению, вы что-то упустили из архетипа, который только вы можете понять. если maven и архетип слишком сложны, вы можете использовать плагин кода VS (который объединяет среду выполнения карате) и запустить файлы функций: marketplace.visualstudio.com/items?itemName=karatelabs.karate