Hatena::ブログ(Diary)

hinimiの偏頭痛 このページをアンテナに追加 RSSフィード

2009-05-23

JUnitの実行ログ出力

他のプロジェクトのことは全く知りませんが、ウチの開発現場ではJUnit 3.8.1のTestCaseを継承したTestCaseクラスを作成し、そのクラスを使用して作成したクラスのテストを行います。(日本語が難しい)

public class MyTestCase extends TestCase { 
  public MyTestCase (){
    super();
    try {
      String logFilePath = "C://";
      String extension = ".txt";
      System.setOut(new PrintStream(new FileOutputStream(logFilePath + getClass().getSimpleName() + extension)));
    } catch (Exception ex) {}
  }
  public void runBare() throws Throwable {
    setUp();
    try {
      System.out.println(getClass().getSimpleName() + " : " + getName() + " Start");
      runTest();
      System.out.println(getClass().getSimpleName() + " : " + getName() + " End");
    } finally {
      System.out.println("");
      tearDown();
    }
  }
}

上記はJUnitの実行ログを出力するために追加/修正した部分です。

実際のソースコードは会社の所有物なんで、公開するわけには行かないので適当に書き直しました。

JUnitテストを実行すると、Cドライブ直下に"作成したクラス名.txt"という名前でファイルが生成します。

中身は"テストクラス名 : テストメソッド名 Start or End"です。

見たまんまです、なんも捻ってません。

テストメソッド実行時にStartが書き込まれて、テストが成功すればEndも書き込まれます。

テストが失敗するとErrorとかをthrowするので、Endが書き込まれません。

なんでこんなどうでもいいソースコードを書いたのかというと、他の開発現場ではどういうログを出力させるのかということが気になったからです。

決してカテゴリー[Java]の記事が1個も無いからって、無理矢理書いたわけではありません!


つーかJDK5.0で開発してるんだけど、JUnit3.8.1…。

JUnit4使いたいよな…。

2009-04-22

wordBreak.js使用時の注意点

wordBreak.jsを使用時にレイアウト崩れが発生。

下記はサンプルソースです。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>wordBreakTest</title>
<script language="javascript" src="../js/wordBreak.js"></script>
<style>
.wordBreak {
	word-break:break-all;
}
</style>
</head>
<body>
<table border="1"class="wordBreak" width="100">
	<tr>
		<th width="100">aaaaaaaaak</th>
	</tr>
	<tr>
		<td width="100">iiiiiiiiiiiiiiiiii</td>
	</tr>
</table>
</body>
</html>

よく分からないけど、インデント(タブ)を消したらレイアウト崩れが解消されました。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>wordBreakTest</title>
<script language="javascript" src="../js/wordBreak.js"></script>
<style>
.wordBreak {
	word-break:break-all;
}
</style>
</head>
<body>
<table border="1"class="wordBreak" width="100">
<tr>
<th width="100">aaaaaaaaak</th>
</tr>
<tr>
<td width="100">iiiiiiiiiiiiiiiiii</td>
</tr>
</table>
</body>
</html>

結論:class="wordBreak"を指定するテーブルはインデントを揃えるのは諦め、左端からソースを書きましょう。

FirefoxとOperaでword-break:break-allを実現する「wordBreak.js」

wordBreak.js