从JUnit中的不同包中读取文件内容

时间:2016-11-22 08:21:04

标签: java csv junit

我正在尝试在我的JUnit代码中读取一个文件(包含我的数据)。

我有一个名为“test”的源文件夹,下面是两个包

  

com.junit.codes(JUnit code)

     

com.junit.codes.data(csv文件,即myData.csv)

我的问题是我无法访问com.junit.codes.data下的文件。

我尝试过使用classLoader但它不起作用。

任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

假设您使用的是基于Maven的设置,请执行以下操作:

  1. 由于默认情况下非Java文件未在“编译”阶段复制到“目标”文件夹,因此应将csv文件添加到 src / test / resources / com / junit / codes / data < / em>的
  2. 从您的测试类开始,您现在应该可以getClass().getResourceAsStream("./data/myData.csv")打开输入流来读取数据。
  3. 示例

    package com.junit.codes;
    import org.junit.Test;
    import java.io.InputStream;
    import static org.junit.Assert.assertNotNull;
    
    public class ReadTest {
        @Test
        public void name() throws Exception {
            try(final InputStream inputStream = getClass().getResourceAsStream("./data/myData.csv")) {
                assertNotNull(inputStream);
            }
        }
    }