Я столкнулся с проблемой конфликтующих преобразователей параметров. Я получаю ошибку ParameterResolutionException: Discovered multiple competing ParameterResolvers for parameter [the parameter]
. Это определенно связано с наличием базового класса, который расширяет реализацию ParameterResolver
, так что я могу взять контекст, чтобы проверить, не прошел ли тест.
Мой код выглядит примерно так:
public class ExtensionContextResolver implements ParameterResolver {
@Override
public boolean supportsParameter(final ParameterContext parameterContext, final ExtensionContext extensionContext) throws ParameterResolutionException {
return true;
}
@Override
public Object resolveParameter(final ParameterContext parameterContext, final ExtensionContext extensionContext) throws ParameterResolutionException {
return extensionContext;
}
}
@ExtendsWith(ExtensionContextResolver.class)
public abstract class TestBase {
private WebDriver driver;
@AfterEach
protected void afterEach(final ExtensionContext context) {
// take screenshot using instance of driver in this class
}
public class MyTest extends TestBase {
@ParameterizedTest
@EnumSource(MyEnum.class)
public void my_super_sweet_test(final MyEnum myEnum) {
// the test
}
}
Что я должен сделать, чтобы обойти эту проблему? Есть ли лучший способ обработки сценария сбоев ios при возможности использования поля, объявленного в классе?
Редактировать: измененное имя теста