Compartilhar via


【Team System】テスト実行のSTA/MTAを設定する方法

※この投稿は、Visual Studio 2008 を対象にしています。

要点のみの投稿です♪
# 締切に追われているものでして・・・(^^;

Visual Studio 2008 Professional Edition, Visual Studio Team System 2008 のテスト実行においてスレッドの設定を STA, MTA で切り替える方法を書きたいと思います。

やり方:

.testrunconfig ファイル(既定だと、LocalTestRun.testrunconfig)を XML エディタなどの編集可能な形で開きます(既定の方法で開くとテスト実行構成用の専用画面が開いてしまいますので)。

たとえば、.testrunconfig を右クリックし、「ファイルを開くアプリケーションを選択」を選び、「XML エディタ」を選択してください(VS上からではなく、メモ帳でも編集はできますがVS使いましょう。ミスを防ぐためにも)。

開いたら、<TestRunConfiguration>タグの中(直下)に下記を追記します:

<ExecutionThread apartmentState="STA" />

image

この値を STA や MTA に変更するわけです。ちなみに、0 か 1 も指定できます(0 が STA、1 が MTA)。私が試した限りでは、どちらの場合も動作しましたが、フォーラム(英語圏)では、数値指定ではうまくいかなかったという報告もあるようです。

Visual Studio 2005 Team System (こちらはご存じのとおり Professional は対象外です)でも設定することができましたが、記述がもう少しわかりづらかったです。細かい点ですが、このあたりも 2008 では手が入っています(^^)

ちなみに、どっちで動いているかの確認は、コード中で下記を用いれば

System.Threading.Thread.CurrentThread.GetApartmentState().ToString()

知ることができます。

ちなみに、既定では、STA で動きます。

ながさわともはる