FileとFileWriter APIを使用するMavenでビルドされたJUnitでテストしたテストがいくつかありますが、Jenkinsでビルドしようとしたときにテストはローカルマシンで動作しますが、動作しません。 Jenkinsでテストを受けるために私が従わなければならない特別なコンベンションはありますか?Jenkinsでファイル操作を動作させるにはどうすればいいですか?
private String resourcesFolderPath = new File("src/test/resources").getAbsolutePath();
private String outputFolderPath = resourcesFolderPath + "/output";
private File outputFolder = new File(outputFolderPath);
そして、ここでは、ジェンキンスに失敗しているテストです:
@Test
public void test() throws Exception {
File file = new File(outputFolder.list()[0]); // File not found exception at this line
if (!file.exists()) file.mkdirs(); // I added this line after Jenkins build failed, did not fix the problem
String fileListName = file.getName();
FileReader fileReader = new FileReader(outputFolderPath + "/" + fileListName);
BufferedReader buffReader = new BufferedReader(fileReader);
String firstFileName = buffReader.readLine();
assertTrue(firstFileName.contains("test1.txt"));
buffReader.close();
}
出力フォルダが含まれている私のリソースフォルダがどこにあるか私はいくつかのパスを初期化しています私のテストファイルで
私がテストしたいファイルですが、JenkinsはFileNotFoundExceptionで失敗します:
java.io.FileNotFoundException: /home/jenkins/workspace/utils-feature-branches-ci/file-list/src/test/resources/output/File_List.txt (No such file or directory)
奇妙なことは、このテストはMavenでビルドするときに私のローカルマシンで動作するが、Jenkinsでは動作しないことである。だから私の質問は、このテストがJenkinsと連携するように私のコードを変更する方法です。どんな助けもありがとう!
あなたの目的のために十分であろう追加。getResourcesAsStream(「/ whatever.properties」) 。あなたがしたようにディレクトリリストを読むことは、あなたが行ったことを前提にしています。ファイルの順序...ファイルの順序はOS/JDKによって異なりますので、ファイル名を取得する順番については何も仮定しないでください。さらに、 'src/test/resources'ディレクトリからの読み込みにファイル名を使用しないでください。 – khmarbaise