1

全て、

私はcom4jを使用してQualityCenterを操作しており、テストプランとラボ、ネストされたフォルダー、および両方の実際のアイテムを正常に作成できます。

私は現在、テストに設計ステップを追加しようとしています。例:

ITestFactory iTestFactory = sNode.testFactory().queryInterface(ITestFactory.class);
Com4jObject oTest = iTestFactory.addItem(name);
ITest iTest = oTest.queryInterface(ITest.class);
iTest.field("TS_DESCRIPTION", description);
iTest.field("TS_STATUS", "Design");
iTest.field("TS_DEV_COMMENTS", comments);
iTest.post();

これはすべて正常に機能します。次に、次のことを試みます。

IBaseFactory iFactory = iTest.designStepFactory().queryInterface(IBaseFactory.class);

IStep iStep = iFactory.addItem(1).queryInterface(IStep.class); // ends up null

iStep.field("ST_DESCRIPTION", "Step desc 1");
iStep.field("ST_EXPECTED", "Expected 1");
iStep.post();

ただし、iStepは常にnullになります。IDesignStepFactoryインターフェイスがないため、queryInterface呼び出しでベースファクトリを使用しようとしています。

QCヘルプファイルとotaclient.dllを確認すると、IDesignStepFactoryインターフェイスなどがないことが示されているようです。また、(一部の)VBの例では、ベースファクトリが使用されているため、上記の試みは...

これは、ファクトリメソッドが利用できるいくつかの場所の1つですが、明示的なインターフェイスはないようです。例:

ITestSet ts; ts.tsTestFactory() // no ITSTestFActory interface exists...

ありがたいことに受け取ったポインタ、

サイモン

4

1 に答える 1

3

原則として、IBaseFactory.addItem は DBNull に相当するものをパラメータとして受け取る必要があります。投稿されたコードでは「1」です。問題のエンティティのドキュメントで明示的に指定されていない限り、エンティティが受け入れることができる他の値のセットとその目的。

設計ステップの場合、DBNull である必要があると推測しています。

于 2012-05-19T09:11:56.100 に答える