junit5 无法识别 csv 文件
csv file is not recognized in junit5
我正在尝试在 junit 5.I 的帮助下为 class 编写一些测试,已经使用 Maven 导入了依赖项
但是当我尝试使用注释 @CsvFileSource(resources = "/testlist.csv") 导入一个 csv 文件以用作测试用例时
我得到这个错误
org.junit.platform.commons.PreconditionViolationException: Classpath resource [/testlist.csv] does not exist
这是我的代码 运行
package com.faezeh.shayesteh;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.CsvFileSource;
public class MultipleOperationParamTest {
@ParameterizedTest
@CsvFileSource(resources = "/testlist.csv")
void testMultipleOpWithCsvFileSrc(int operand, int data, int result){
MultiplyOperation multop = new MultiplyOperation(operand);
int actual = multop.operate(data);
Assertions.assertEquals(result,actual);
}
}
这就是我的目录排序方式
我需要提一下,当我不使用 Maven 作为框架并按如下方式对我的目录进行排序时,它工作正常并且没有问题
由于 CSV 文件位于 com.faezeh.shayesteh
包中,您必须指定相应的类路径位置:
@CsvFileSource(resources = "/com/faezeh/shayesteh/testlist.csv")
看看target/test-classes/
,这是测试类路径根(/
)。如果您将 CSV 文件放在 src/test/resources/
中,您将直接在根路径下找到它。这样你就可以坚持 resource = "/testlist.csv"
.
如果您的文件在测试资源文件夹中,请不要忘记添加 /
@CsvFileSource(resources = "testlist.csv")
更改为以下内容:
@CsvFileSource(resources = "/testlist.csv")
在我的例子中 IntelliJ 只是没有足够快地在测试 /resources 中注册新的 csv 文件
我正在尝试在 junit 5.I 的帮助下为 class 编写一些测试,已经使用 Maven 导入了依赖项 但是当我尝试使用注释 @CsvFileSource(resources = "/testlist.csv") 导入一个 csv 文件以用作测试用例时 我得到这个错误
org.junit.platform.commons.PreconditionViolationException: Classpath resource [/testlist.csv] does not exist
这是我的代码 运行
package com.faezeh.shayesteh;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.CsvFileSource;
public class MultipleOperationParamTest {
@ParameterizedTest
@CsvFileSource(resources = "/testlist.csv")
void testMultipleOpWithCsvFileSrc(int operand, int data, int result){
MultiplyOperation multop = new MultiplyOperation(operand);
int actual = multop.operate(data);
Assertions.assertEquals(result,actual);
}
}
这就是我的目录排序方式
我需要提一下,当我不使用 Maven 作为框架并按如下方式对我的目录进行排序时,它工作正常并且没有问题
由于 CSV 文件位于 com.faezeh.shayesteh
包中,您必须指定相应的类路径位置:
@CsvFileSource(resources = "/com/faezeh/shayesteh/testlist.csv")
看看target/test-classes/
,这是测试类路径根(/
)。如果您将 CSV 文件放在 src/test/resources/
中,您将直接在根路径下找到它。这样你就可以坚持 resource = "/testlist.csv"
.
如果您的文件在测试资源文件夹中,请不要忘记添加 /
@CsvFileSource(resources = "testlist.csv")
更改为以下内容:
@CsvFileSource(resources = "/testlist.csv")
在我的例子中 IntelliJ 只是没有足够快地在测试 /resources 中注册新的 csv 文件