我使用下面的方法在参数化 JUnit5 测试中访问 csv 文件,但是有没有办法动态提供此 csv 文件或指向 csv 文件位置的不同文件路径?
@CsvFileSource(resources = "/testDataFile/testData.csv" , numLinesToSkip = 1, delimiter = ';', encoding = "UTF-8")
换句话说,我可以动态更新“/testDataFile/testData.csv”吗?
我想要一种动态传递 csv 文件的文件路径的方法,这样它就不是硬编码的位置或文件名。
恐怕这是不可能的。一般来说,注释的值必须是常量表达式。并且
@CsvFileSource
API 不支持对所提供的值进行动态/编程控制,至少据我所知。
两种可能的定制解决方案:
@ArgumentsSource
(非公开)创建一个 ArgumentsProvider
和相应的
CsvArgumentsProvider
。
创建一个 扩展,动态创建在
resources
中指定为 files
/@CsvFileSource
的 CSV 文件。