データレコード形式のテストデータを生成するツールを公開しました。

## このドキュメントの内容

データレコード形式のテストデータを生成するツール mxDataFountain を紹介します。

## ツールの概要

* [先日公開したライブラリ](https://qiita.com/mxProject/items/194b2ae4c11656ae5a09)を使用しています。
* 生成するデータの定義をGUIで入力することができます。入力した定義を `mxProject.Devs.DataGenerator` が提供する構成ファイルの形式で出力することができます。

https://qiita.com/mxProject/items/194b2ae4c11656ae5a09

## スクリーンショット

![screenshot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280969/b327b8e1-20d8-e069-7ffa-c9404b7941db.png)

## 使用方法

### フィールドの追加

* Field, TupleField, AdditionalField, AdditionalTupleField ノードのコンテキストメニューを表示してください。右側に表示されるエディタにフィールドの定義を入力して Apply ボタンを押すと、フィールドが追加されます。
* DirectProduct フィールドの場合、DirectProduct ノードのコンテキストメニューから子フィールドを追加してください。

![addfield.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280969/e247d718-df16-4314-4c1d-9e130ef18b29.png)

### フィールドの編集

* ツリービューで選択されたフィールドの型に対応したエディタが表示されます。フィールドの定義を入力して Apply ボタンを押すと、フィールドが更新されます。
* Field, TupleField の場合、Preview Field ボタンで入力中のフィールドから生成される値をプレビューすることができます。

![editor.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280969/e444446c-122c-a227-1c38-5e389ff59c53.png)

### 構成ファイルの読込と保存

* File メニューでは構成ファイルの読込と保存を行うことができます。

|メニュー|説明|
|:--|:--|
|New Project|入力されている内容をクリアして新規プロジェクトの入力を開始します。|
|Load ProjectSettings|mxDataFountain プロジェクトファイルを読み込みます。|
|Load DataGeneratorSettings|`mxProject.Devs.DataGenerator` の DataGeneratorSettings に対応した JSON ファイルファイルを読み込みます。|
|Save as ProjectSettings|入力されている内容を mxDataFountain プロジェクトファイルとして保存します。|
|Save as DataGeneratorSettings|入力されている内容を `mxProject.Devs.DataGenerator` の DataGeneratorSettings に対応した JSON ファイルファイルとして保存します。|

![file.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280969/d91e0e49-60c4-99ba-d30f-7391db188782.png)

### プレビュー

* Preview ボタンをクリックすると、プレビューダイアログが表示されます。100 件のデータが生成されます。任意のデータ件数を入力して生成することもできます。

![preview.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280969/570ccd70-7f8e-d113-c78f-cbdf723c90f9.png)

### CSVファイル出力

* CSV ボタンをクリックすると、CSV出力ダイアログが表示されます。ファイルパスと生成するデータ件数を入力します。

![csvoutput.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280969/5b87a3c0-834e-6f74-d091-57d2691e0f9f.png)

* CSV出力に関する動作設定を変更するには、Settings > CsvSettings メニューから設定画面を表示してください。

![csvsettings.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280969/a5ea1059-0409-b08e-7f55-56d80bd06a90.png)

### 任意のライブラリの読込

* 任意のライブラリに定義された値型の値を生成したい場合、そのライブラリを参照アセンブリリストに追加してください。Settings > ExecutorSetup メニューから設定画面を表示してください。
* この設定画面では、データ生成に使用されるコンテキストクラスをカスタマイズすることもできます。`mxProject.Devs.DataGenerator` の IDataGeneratorContextActivator インターフェースを実装した型を定義し、その型名をここに入力してください。

![executorsetup.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280969/3a7a01c5-84b2-302d-e4a5-e6caf1a1989e.png)

## 動作要件

### フレームワーク

* .NET Framework 4.7.2

### 利用している主なパッケージ

* mxProject.Devs.DataGenerator (>= 0.9.1)
  * Newtonsoft.Json (>= 12.0.3)
  * JsonSubTypes (>= 1.7.0)
  * Microsoft.CodeAnalysis.CSharp.Scripting (>= 3.7.0)
* CsvHelper (>= 27.1.1)
* MessagePipe (>= 1.6.1)
* Microsoft.Extensions.DependencyInjection (>= 5.0.2)

## インストール

* .NET Framework 4.7.2 ランタイムがインストールされていない場合は、マイクロソフトのWEBサイトなどから入手してインストールしてください。

* このリポジトリのリリースページから圧縮ファイルをダウンロードし、任意のフォルダに展開してください。アプリケーションの実行ファイルは mxDataFountain.Net472.exe です。

https://github.com/mxProject/DataGenerator/releases/tag/mxdatafountain_0.6.0