当前位置: 首页 > 知识库问答 >
问题:

空手道:从绝对类路径提取特征文件

苗烈
2023-03-14

我遵循DemotestSelected.java示例在我的空手道框架中运行特性文件。当我在Intellij中运行它们时,它工作得很好。但当我将其转换为jar并运行时,它会抛出以下错误。

java.lang.RuntimeException:java.io.FileNotFoundException:file:\c:\src_path\target\app-jar-with-dependencies.jar!\features\app\app_1.0.4_a.feature(文件名、目录名或卷标语法不正确)

我探索了空手道的核心代码,发现了下面的类,这可能是问题。

 public static URL toFileUrl(String path) {
        path = StringUtils.trimToEmpty(path);
        File file = new File(path);        
        try {
            return file.getAbsoluteFile().toURI().toURL();
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }

我被困在这里了,任何帮助都不胜感激。

共有1个答案

耿俊彦
2023-03-14

首先--从来没有人报告过这个问题,团队通常不需要将测试捆绑到一个JAR中。

第二,如果您使用classpath:前缀,那么即使是JAR文件,也应该能够加载特性文件。所以请使用它,它的文档在这里:https://github.com/intuit/karate#reading-files

* def result = call read('classpath:some-reusable-steps.feature')

如果这不能解决问题,请按照这里的说明提交一个问题:https://github.com/intuit/karate/wiki/how-to-submit-an-issues-请解释一下您试图以不同的方式做什么。

 类似资料:
  • 我试图建立一系列触发空手道场景的加特林测试。我对功能文件所做的更改只是偶尔被加特林发现。例如,在下面的功能文件代码中,运行前四个项目(包括注释掉的“关系”行): 其余的不是。请参阅运行结果的附加屏幕:在此输入图像描述 POM供参考版本: 我怀疑像编译文件这样的东西在进行更改时不会刷新或重新编译。

  • 问题内容: 是否有任何API可以从绝对文件路径检索文件名? 例如来自 我知道它可以像字符串操作一样工作, 但是我想知道还有没有像Java 这样的“正式”方式可以做到这一点。 NodeJS从绝对路径获取文件名? 问题答案: 使用模块的方法: 这是上面示例的文档。

  • 我也试着做 而我不断得到这个结果。

  • 我有一个活动,我使用空手道模拟。其中一个API返回一个响应,但在一段延迟后,它还会调用另一个API(模拟工作负载的处理) 我希望达到以下目标: 我现在的处境是 在一个单独的功能文件中调用B,我可以从另一个功能文件中调用它。 所以我想我在空手道中与异步呼叫作斗争。 我确实创建了一个实现异步执行的Java类,但我不确定如何从它调用功能文件。这将立即为我解决这个问题。 还有没有更好的方法?

  • 问题内容: 键入标题时,我注意到有关此问题的一些类似问题,但它们似乎不在PHP中。那么用PHP函数解决该问题的方法是什么? 待指定。 有什么好主意吗?谢谢。 问题答案: 试试这个: 这将给 和 和 和

  • 问题内容: 我正在编写一个程序,其中的一个组件必须能够采用给定的路径(例如或)和基于该位置的相对路径(例如或或)并产生绝对路径由相对路径暗示。考虑以下目录树。 该文件包含一个链接,如。该计划获得通过或,并将其与结合来获得。 同样,文件具有链接,程序需要从该链接返回。有合理的方法做到这一点吗? 谢谢。:) 编辑: 谢谢斯蒂芬·温伯格!对于未来的每个人,这是我使用的代码。 问题答案: 在与使用时应该做