Skip to content
This repository has been archived by the owner on May 21, 2022. It is now read-only.

コンパイルテスト

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単位のテストケースを表します。 要素の内容として、以下の要素を順番に記述する事ができます。

  1. code要素(必須)
  2. 0個以上のinfo/error/warning要素
  3. input要素
  4. output要素

付属する属性として、以下の属性を記述する事ができます。

属性名 説明
name テストケースの表示名を指定します。
timeout テストケースの実行時間が指定の時間を越えた場合にテストケースを中断します。(ミリ秒指定)
ignore テストケースを実行せずに無視するかを指定します。
explict テストケースを明示的に選択した時だけ実行するかを指定します。
no-execute コンパイル後に出来た実行ファイルを実行しないかを指定します。

###code コンパイルするコードを記述します。

###info/error/warning 期待するエラー・警告を指定します。 この要素を使用する場合は、以下の属性を必ず記述する必要があります。

属性名 説明
key エラー・警告を識別するキーです。(必須)

###input/output コンパイルされたコードを実行する際の、標準入力と期待する標準出力を記述します。 記述した文字列は、連続する空白と改行を一つの空白に変換した物が使用されます。 実際に出力された文字列との比較では、変換後の文字列と一致すればテストが通った物として扱われます。

#テストの実行方法 記述したテストケースはDlightTestディレクトリ置くことでNUnitランナーに読み込まれ、NUnit経由で実行する事ができます。 テストケースを実行するにあたって、幾つかの注意点があります。

  • テストケースを記述したXMLが、ビルド時に出力ディレクトリにコピーされるようにする必要があります。
  • Visual Studioの場合は、ファイルのプロパティ設定で「ローカルコピーをする」に設定することでコピーされます。
  • XMLのみを変更した状態でビルドした場合は、NUnitがテストケースの自動更新を行わないため、明示的にテストケースを更新するか、プロジェクトをリビルドする必要があります。
Clone this wiki locally