Cucumber-JVM 3 - io.cucumber.datatable.UndefinedDataTableTypeException

后端 未结 4 1969
无人及你
无人及你 2020-12-18 05:03

I updated from Cucumber-JVM 2.4.0 to 3.0.2 in my pom.xml and DataTables started throwing this exception:

io.cucumber.datatable.UndefinedD

4条回答
  •  北海茫月
    2020-12-18 05:26

    It has been totally revamped. XStream has been removed , so earlier code will not work.

    You will need to add logic for datatable and parameter conversion. Refer to these - https://github.com/cucumber/cucumber/tree/master/datatable and https://github.com/cucumber/cucumber/tree/master/cucumber-expressions . Place below class code inside a package defined in the glue option.

    public class Configurer implements TypeRegistryConfigurer {
    
        @Override
                public void configureTypeRegistry(TypeRegistry registry) {
    
        registry.defineDataTableType(new DataTableType(Income.class, new TableEntryTransformer() {
                        @Override
                        public Income transform(Map entry) {
                            return new Income(entry.get("name"),entry.get("amount"),entry.get("frequency"));
                        }
                    }));
                }
    
                @Override
                public Locale locale() {
                    return Locale.ENGLISH;
                }
    
            }
    

    UPDATED Imports... Not all are required, keep what is relevant

    import cucumber.api.TypeRegistry;
    import cucumber.api.TypeRegistryConfigurer;
    import io.cucumber.cucumberexpressions.ParameterType;
    import io.cucumber.datatable.DataTable;
    import io.cucumber.datatable.DataTableType;
    import io.cucumber.datatable.TableCellTransformer;
    import io.cucumber.datatable.TableEntryTransformer;
    import io.cucumber.datatable.TableRowTransformer;
    import io.cucumber.datatable.TableTransformer;
    

提交回复
热议问题