Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

jUnitコード

お世話になります。

題名の件で質問させていただきます。

jUnitで
環境変数に変数を登録し
登録された変数を System.getenv() で取得して
比較するというテストコードを作成しています。

ですが環境変数を登録するところで
ハマっています。

jUnitの起動オプションで環境変数の登録はできそうですが、できればコード上で変数を設定した上で、その値を取得したいと考えております。

Runtime.exec("cmd /c set test=test");
的なことを試しましたがダメでした。

よろしくお願いいたします。

5

回答

8434

閲覧

5件の回答

評価

0

もうちょっと具体的に言ってもらえると嬉しいな。

とりあえずこれはjUnit関係ないよね。
一般的なJavaの質問よね。

んとこういうこと?
通常ならコマンドプロンプトでまず
SET TEST=123
java Test1
と実行するトコを
java Test1
と実行のみにして
SET TEST=123をTest1内に記述したい。
そゆことかな?

そもそも同じTest1で実行するなら直接変数に入れたほうが
楽な気がするけど。

評価

0

>てんこさん

回答ありがとうございます。

確かにjUnit限定ではないかもしれないです、、、
が、ちょっと関係もあるんです^^;

>通常ならコマンドプロンプトでまず
>SET TEST=123
>java Test1
>と実行するトコを
>java Test1
>と実行のみにして
>SET TEST=123をTest1内に記述したい。
>そゆことかな?
大まかには上記のことで間違いないです。

ただ、Test1.java(仮名)を実行するのは
Eclipse上のjunitからとなります。
説明不足でした。

ですのでEclipseからjUnitを実行する際
起動オプション的なものに環境変数をセットした上で
実行すれば結果は正常となります。

今回お願いしたいのが、jUnitに対しては起動オプション等の環境変数は設定せず、javaコードでそれを完結したいと考えています。
これは下記にておっしゃられたことと同義となります。
>java Test1
>と実行のみにして
>SET TEST=123をTest1内に記述したい。

よろしくお願いいたします。

評価

0

・・・無理っ。

えっとね
System.getenvで取得できる値は
自身のVM(プロセス)に設定された環境変数なの。
でもRuntime.execで実行されるのは
別のプロセスになってしまうのよ。

全然別のトコに書き込んでいるから
取得できないわけ。

プロパティファイルを作成して
そこに変数を羅列して
それを読み込むようにするのをお勧めするわ。

評価

0

てんこさん

回答ありがとうございます!

なるほど、javaapiにもそれっぽいことかいてありますねぇ

環境変数から値を取得してこないとテストにならないのでプロパティファイルは使用できないんです。
こまったこまった、、、

こんなことにお付き合いいただきまして
てんこさん
どうもありがとうございました!
またひとつ勉強になりました!

jUnitのオプションで環境変数登録があるくらいですから
なんとかならないかなぁと思いましたが、、、
もう少し調べてみたいと思います!

評価

0

Runtime#exec()で環境変数を指定すれば?

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。