C# で 1 つの UnitTesting プロジェクトを作成しましたが、いくつかの問題に直面しています。
まず、最初に 1 回だけ実行する必要があるいくつかの接続機能を実行したいと考えました。その後、Excelファイルからいくつかのレコードを読み取ろうとして、いくつかの挿入操作をテストしています。挿入が発生するたびに、そのコンストラクターが呼び出されてから Initialize メソッドが呼び出された後に TestCleanUp() が起動されます。各レコードが 1 回だけ挿入された後にコンストラクターが起動することは望ましくありません。Connect 機能を配置する場所と、毎回コンストラクターを呼び出さないようにする方法がわかりません。
[TestClass]
public class TestConnection
{
private TestContext testContextInstance;
private static iCAM70003SDKC o_DeviceControl = null;
/// <summary>
///Gets or sets the test context which provides
///information about and functionality for the current test run.
///</summary>
public TestContext TestContext
{
get
{
return testContextInstance;
}
set
{
testContextInstance = value;
}
}
[ClassInitialize()]
public static void Initialize()
{
int iResult = 0;
EOperationalMode OperationalMode;
}
提案どおり、ClassInitialize で初期接続を確立できるようになりました。ClassInitialize で COM オブジェクトのインスタンスを作成しているので、初期接続を確立しています。今、私はテストする別の Testmethod を持っています。プログラムを実行すると、最初のテストメソッドを実行した後に例外が発生します。「基礎となる RCW から分離された COM オブジェクトは使用できません」?
2番目のテストメソッドを実行しようとしているときに、COMオブジェクトが破壊されていると思います。この COM オブジェクトを維持するにはどうすればよいですか? 私は ReleaseCOMObject を呼び出していません。