2016-07-26 8 views
0

私はTestLink、Cucumber、Jenkins、Mavenを使って受け入れテストを自動化しようとしています。これを行うために、私はMavenによって作成されたMANIFEST.MFファイルを読むように頼んでいます。私はテストの実行中にそれを行う必要があります。テストの実行中にMANIFEST.MFファイルを読み取るにはどうすればよいですか?

`public static String readVersion() throws IOException { 
InputStream in = VersionUtil.class.getResourceAsStream("/META-INF/MANIFEST.MF"); 
Manifest manifest = new Manifest(in); 
// Lire la propriété "Implementation-Version" du Manifest 
String version = manifest.getMainAttributes().getValue(Attributes.Name.IMPLEMENTATION_VERSION); 
return version; 
}` 

しかし、私はそれを実行しようとするとNullPointerExceptionを取得しています...あなたが任意のアイデア理由を持っていますか:

私はこのコードの例を見つけましたか?

私はmavenをmvn package testという簡単なコマンドで起動します。

私は、このコードが起動している瞬間から来ていると思います。パッケージフェーズの後に起動する必要があります。これを行う方法はありますか?

ありがとうございました!

+0

にキャストすることができますので、あなたはすでにあなたのプロジェクトでマニフェストファイルを持っていますか、またはそれが完全にMavenによって書かれている、あなたは以下のコードを試すことができると思いますか? – watery

+0

それは完全にMavenによって書かれています –

答えて

0

私はほとんどのクラスローダがURLClassLoaderの

URLClassLoader cl = (URLClassLoader) getClass().getClassLoader(); 
try { 
    URL url = cl.findResource("META-INF/MANIFEST.MF"); 
    Manifest manifest = new Manifest(url.openStream()); 
    ... 
} catch (IOException E) { 
    // handle 
} 
+0

あなたの素早い答えをありがとう、私はそれを試みたが、まだ私の方法の呼び出しでヌルポインタの例外を得る... –

関連する問題