TypeScriptはGitHubにあるOSSであり、チームはコミュニティのインプットを歓迎します。
凄く簡単です:
git clone https://github.com/Microsoft/TypeScript.git
cd TypeScript
npm install -g jake
npm install
当然、あなたはMicrosoft/TypeScriptをupstreamリモートとしてセットアップし、自分の_fork_(GitHub _fork_ボタンを使用)をoriginとしてセットアップする必要があります。
git remote rm origin
git remote rm upstream
git remote add upstream https://github.com/Microsoft/TypeScript.git
git remote add origin https://github.com/basarat/TypeScript.git
さらに、私はbas/のようなブランチを使って、ブランチリストをよりクリーンに表示させたいと思っています。
JakeFileにはたくさんのtestオプションとbuildオプションがあります。すべてのテストをjake runtestsで実行することができます。
ベースライン(Baselines)
ベースラインは、TypeScriptコンパイラの期待された出力に変更があるかどうかを管理するために使用されます。ベースラインはtest/baselinesに配置されています。
Reference(期待された)ベースライン: tests/baselines/reference
(このテスト実行の中で)生成されたベースライン: tests/baselines/local(このフォルダは**.gitignore**にあります)
これらのフォルダ間に相違がある場合、テストは失敗します。BeyondCompareやKDiff3のようなツールで2つのフォルダを比較することができます。
生成されたファイルのこれらの変更が正しいものであるなら、jake baseline-acceptを使ってベースラインを受け入れます。このreferenceベースラインへの変更はコミットできるgit diffとして表示されます。
すべてのテストを実行しない場合は、jake baseline-accept[soft]を使用します。これは新しいファイルをコピーするだけで、referenceディレクトリ全体を削除しないことに注意してください。
異なるシナリオに対して異なるカテゴリがあります。そして、異なるテストインフラに対してでさえもそうです。ここではそれらのうちのいくつかを説明します。
これらはファイルのコンパイルを確認します:
これらの期待は、ベースラインのインフラストラクチャを使用して検証されます。
テストは tests/cases/compilerに新しいファイルyourtest.tsを追加することで作成できます。テストを実行するとすぐに、ベースラインに失敗するはずです。これらのベースラインを受け入れて(gitでそれらを表示させるために)、それらがあなたが期待しているものになるように微調整してください...そしてテストが通るようにしてください。
jake runtests tests = compilerを使ってこれらをすべて単独で実行するか、jake runtests tests=compiler/yourtestを使って新しいファイルだけを実行してください。
私はしばしばjake runtests tests=compiler/yourtest || jake baseline-accept[soft]を実行し、gitでdiffを取得します。
jake runtests-browser tests=theNameOfYourTestとブラウザ内でのデバッグは、通常、非常にうまく行きます。