ダークエリア

SEのお仕事の備忘録や、ゲームの話などなどを記事に放り込む!!

JUnitで複数スレッド(マルチスレッド)実行

<参考>

irof.hateblo.jp

<つくった>

ProjectJUnitTest.zip - Google ドライブ

インポート文とか書かれてなかったし、動くものが必要な時を考えてプロジェクト化。

Java10、JUnit4で作ってます。おそらくJava10じゃなくても動くはず。

※ただし、JUnitは4で。後述参照。

 

やっぱソース書いてくれる人は、いるとすごい嬉しいけど、

ソースヘッダも書いてほしいかも(´・ω・`)

ばかには何を入れたらいいか分からないのです。。

というわけでダウンロードすれば使えます。

 

<注意>

JUnit4でないと動きませんでした。。

5にしてたら何も起きず。何か方法が違うんだろうな。

方法はわかってないのでとりあえず未解決カテゴリ行き。。

19/02/15 JUnit5でも動きましたので訂正

 

JUnitの追加・バージョンの変更は

プロジェクト→プロパティ→Javaのビルド・パス→ライブラリーから。

f:id:liliel_OvO:20181206112424p:plain

 

<追加 18/12/06>

まだまだRuleについて勉強不足だけど、これを使っていろいろできそう。

 

例えば、サーバアクセス数制限を50に設定して、マルチスレッドで60回やる。

その中で、アクセス数超過のエラーが出たらOK、出なかったらNG、のJUnit

とか。

 

ループが終わった後にassertするか、

ループの途中でフラグを立てるなどで評価できれば、いけそう。。

 

<追加 19/02/15>

なんとJUnit5でもできた。エラーが出たのはまた別の原因かもしれない。。

プロジェクトといわずソース単体で置いといた。

Ruleが同時実行するためのモジュール、Sampleがそれを使ったJUnit

JUnit - Google ドライブ

 - JUnitThreadRule.java - Google ドライブ

 - JUnitThreadRuleSample.java - Google ドライブ