Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在其他空手道项目中重用util java类?_Java_Automated Tests_Karate_Cucumber Java - Fatal编程技术网

如何在其他空手道项目中重用util java类?

如何在其他空手道项目中重用util java类?,java,automated-tests,karate,cucumber-java,Java,Automated Tests,Karate,Cucumber Java,我正在使用空手道框架测试我的rest服务,它工作得很好,但我有一个服务,它使用来自kafka主题的消息,然后在mongo上持久化,最终通知kafka。 我在我的空手道项目上做了一个java制作人,js调用了它以供功能使用。 然后我有一个消费者来检查消息 特色: * def kafkaProducer = read('../js/KafkaProducer.js') JS: 爪哇: 其他类 public class KafkaConfiguration { private static

我正在使用空手道框架测试我的rest服务,它工作得很好,但我有一个服务,它使用来自kafka主题的消息,然后在mongo上持久化,最终通知kafka。 我在我的空手道项目上做了一个java制作人,js调用了它以供功能使用。 然后我有一个消费者来检查消息

特色:

    * def kafkaProducer = read('../js/KafkaProducer.js')
JS:

爪哇:

其他类

public class KafkaConfiguration {

private static final Logger LOGGER = LoggerFactory.getLogger(KafkaConfiguration.class);

private Properties properties;

public KafkaConfiguration(String host) {

    try {
        properties = new Properties();
        properties.put(BOOTSTRAP_SERVERS_CONFIG, host);
        properties.put(ConsumerConfig.GROUP_ID_CONFIG, "karate-integration-test");
        properties.put(ConsumerConfig.CLIENT_ID_CONFIG, "offset123");
        properties.put(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG, true);
        properties.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "earliest");
    } catch (Exception e) {
        LOGGER.error("Fail creating the consumer...", e);
        throw e;
    }
}

public Properties getProperties() {
    return properties;
}

public void setProperties(Properties properties) {
    this.properties = properties;
}
}
我想将生产者代码与anotation一起使用,就像cucumber喜欢:

@Then("^Notify kafka with payload (-?\\d+)$")
    public void validateResult(String payload) throws Throwable {
        new Producer(kafkaConfiguration).produceMessage(payload);
    }
和功能使用

Then Notify kafka with payload "{example:value}"
我之所以想这样做,是因为我想在基本项目上重用代码,以便包含在其他项目中
如果注释不起作用,也许你可以建议我用另一种方法来做

答案很简单,使用普通的Java/Maven概念。将通用Java代码移到“main”包中(
src/main/Java
)。现在,您需要做的就是构建一个JAR,并将其作为依赖项添加到任何空手道项目中

最后一个难题是:使用
类路径:
前缀来引用JAR中的任何特性或JS文件。空手道能把他们接起来


编辑:抱歉,空手道不支持Cucumber或step定义。它有一个简单得多的方法。请阅读本文了解详细信息:

答案很简单,请使用普通的Java/Maven概念。将通用Java代码移到“main”包中(
src/main/Java
)。现在,您需要做的就是构建一个JAR,并将其作为依赖项添加到任何空手道项目中

最后一个难题是:使用
类路径:
前缀来引用JAR中的任何特性或JS文件。空手道能把他们接起来


编辑:抱歉,空手道不支持Cucumber或step定义。它有一个简单得多的方法。有关详细信息,请阅读此文:

那么我可以创建一个带有小黄瓜注释的基础项目,并将其用于另一个项目吗?@TuGordoBello抱歉,我刚刚注意到您的答案中有一个“小黄瓜注释”,这就是为什么您应该提出简单而简洁的问题。我已经编辑了我的答案,请看结尾。对不起,空手道不是黄瓜,请不要强求:)那么我可以创建一个带有小黄瓜注释的基础项目并将其用于另一个项目吗?@TuGordoBello对不起,我只是注意到你的答案中有一个“小黄瓜注释”,这就是为什么你应该问简单而简洁的问题。我已经编辑了我的答案,请看结尾。对不起空手道不是黄瓜,请不要强求:)
@Then("^Notify kafka with payload (-?\\d+)$")
    public void validateResult(String payload) throws Throwable {
        new Producer(kafkaConfiguration).produceMessage(payload);
    }
Then Notify kafka with payload "{example:value}"