This repository has been archived by the owner on May 21, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
コンパイルテスト
B-head edited this page May 26, 2014
·
1 revision
Dlightコンパイラを効率的にテストするための、自動コンパイルテストツールの仕様です。
#テストケースの記述 自動コンパイルテストのテストケースはXMLで記述します。
##基本的なテストケースの記述方法 自動コンパイルテストのテストケースは、コンパイルするコードと期待される標準出力かエラー出力のペアで記述します。 以下は基本的なテストケースを記述した例です
<?xml version="1.0" encoding="utf-8" ?>
<compile-test xmlns="CompileTestSchema.xsd">
<case>
<code>
var a:Int32
echo a
</code>
<output>0</output>
</case>
<case>
<code>
echo abc
</code>
<error key="undefined-identifier"/>
</case>
</compile-test>
##XML要素の一覧 ###compile-test テストケースXMLのルート要素です。 複数のcase要素を記述できます。
###case 1単位のテストケースを表します。 要素の内容として、以下の要素を順番に記述する事ができます。
- code要素(必須)
- 0個以上のinfo/error/warning要素
- input要素
- output要素
付属する属性として、以下の属性を記述する事ができます。
属性名 | 説明 |
---|---|
name | テストケースの表示名を指定します。 |
timeout | テストケースの実行時間が指定の時間を越えた場合にテストケースを中断します。(ミリ秒指定) |
ignore | テストケースを実行せずに無視するかを指定します。 |
explict | テストケースを明示的に選択した時だけ実行するかを指定します。 |
no-execute | コンパイル後に出来た実行ファイルを実行しないかを指定します。 |
###code コンパイルするコードを記述します。
###info/error/warning 期待するエラー・警告を指定します。 この要素を使用する場合は、以下の属性を必ず記述する必要があります。
属性名 | 説明 |
---|---|
key | エラー・警告を識別するキーです。(必須) |
###input/output コンパイルされたコードを実行する際の、標準入力と期待する標準出力を記述します。 記述した文字列は、連続する空白と改行を一つの空白に変換した物が使用されます。 実際に出力された文字列との比較では、変換後の文字列と一致すればテストが通った物として扱われます。
#テストの実行方法 記述したテストケースはDlightTestディレクトリ置くことでNUnitランナーに読み込まれ、NUnit経由で実行する事ができます。 テストケースを実行するにあたって、幾つかの注意点があります。
- テストケースを記述したXMLが、ビルド時に出力ディレクトリにコピーされるようにする必要があります。
- Visual Studioの場合は、ファイルのプロパティ設定で「ローカルコピーをする」に設定することでコピーされます。
- XMLのみを変更した状態でビルドした場合は、NUnitがテストケースの自動更新を行わないため、明示的にテストケースを更新するか、プロジェクトをリビルドする必要があります。