繁体   English   中英

如何从Java JUnit中的.properties文件获取文件名?

[英]How to get the file name from .properties file in java JUnit?

我有8个测试用例,其中每个测试用例都使用不同的文件。 我如何从.properties文件中获取特定文件,该文件包含文件的路径。 一些测试用例如下所示:

@Test
    public void testIfColDataReadIsCorrect() throws FileNotFoundException{

        obj.readExcelToGetData("D:/ExcelTestFiles/testExcelWithAllColData.xlsx");
        rowObj= obj.getRowRecord();
        assertEquals(rowObj.getName(), TEST_NAME);
        assertEquals(rowObj.getId(), TEST_id);
        assertEquals(rowObj.getDate(), TEST_DATE);
        assertEquals(rowObj.getMessage(), TEST_MSG);
        assertEquals(rowObj.getPage(), TEST_PAGE);
        assertEquals(rowObj.getType(), TEST_TYPE);
        assertEquals(rowObj.getLikeCount(),TEST_LIKECOUNT);
        assertEquals(rowObj.getShareCount(), TEST_SHARECOUNT);
        assertEquals(rowObj.getCommentCount(), TEST_COMMENTCOUNT);
    }
    @Test
    public void testWhenNameColDoesNotExists() throws FileNotFoundException{
        //FacebookDataExtraction obj= new FacebookDataExtraction();
        //FacebookFields rowObj=new FacebookFields();
        obj.readExcelToGetData("D:/ExcelTestFiles/testExcelWithNoNameCol.xlsx");
        rowObj= obj.getRowRecord();
        assertEquals(rowObj.getName(), null);
        assertEquals(rowObj.getId(), TEST_id);
        assertEquals(rowObj.getDate(), TEST_DATE);
        assertEquals(rowObj.getMessage(), TEST_MSG);
        assertEquals(rowObj.getPage(), TEST_PAGE);
        assertEquals(rowObj.getType(), TEST_TYPE);
        assertEquals(rowObj.getLikeCount(),TEST_LIKECOUNT);
        assertEquals(rowObj.getShareCount(), TEST_SHARECOUNT);
        assertEquals(rowObj.getCommentCount(), TEST_COMMENTCOUNT);

    }

我认为这不是直接输入readExcelToGetData()方法的文件路径的最佳实践。 经过某些帖子后,我发现这些文件可以放在.properties文件中,并且可以从中读取。 如何在每个测试用例中获取特定的文件路径?

您可以通过ClassLoader从类路径加载文件。 例如: this.getClass().getClassLoader().getResourceAsStream("myFiles.properties") ; 因此,根据您的IDE,您可以将属性文件放入source-或resources文件夹中。

使用@Parameterized运行器运行JUnit测试可让您使用不同的输入运行同一测试的多个迭代。

您可以从任何来源读取测试参数,并将其用于参数化测试中,而无需为每个输入都复制测试方法。

您至少需要JUnit 4.11才能使用Parameterized

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM