CSV-файл не распознается в junit5 - PullRequest
1 голос
/ 12 апреля 2020

Я пытаюсь написать несколько тестов для класса с помощью junit 5. Я импортировал зависимости, используя Maven, но когда я пытаюсь импортировать файл csv для использования в качестве тестового примера, используя аннотацию @CsvFileSource (resources = "/testlist.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);

    }
}

, и вот как мои каталоги сортируются enter image description here

Я должен упомянуть, когда я не использую Maven в качестве фреймворка, и сортировать мои каталоги, как показано ниже, работает нормально и проблем нет enter image description here

1 Ответ

3 голосов
/ 12 апреля 2020

Поскольку файл CSV находится в пакете com.faezeh.shayesteh, необходимо указать соответствующее местоположение пути к классу:

@CsvFileSource(resources = "/com/faezeh/shayesteh/testlist.csv")

Посмотрите на target/test-classes/, это тестовый путь к классу root ( /). Если вы поместите свой CSV-файл в src/test/resources/, вы найдете его прямо по пути root. Таким образом, вы можете придерживаться resource = "/testlist.csv".

...