1

私はさまざまなことを試し、何時間もグーグルで検索しましたが、私の問題の解決策を見つけることができませんでした。

Com4j経由でQualityCenterOTA APIを使用して、プログラムがQCと通信できるようにしています。それはかなりうまく機能します、しかし今私はこの問題につまずきました:

プログラムを使用して、「テストプラン」のテストケースに新しいパラメータを追加したいと思います。

VBを使用した場合、次のように機能します。

Dim supportParamTest As ISupportTestParameters
Set supportParamTest = TDConnection.TestFactory.Item(5)

Set testParamsFactory = supportParamTest.TestParameterFactory
Set parameter = testParamsFactory.AddItem(Null)
parameter.Name = name
parameter.Description = desc
parameter.Post

Set AddTestParameter = parameter

重要な部分は、TestParameterFactoryでのPASSWORD()の呼び出しです。パラメータを追加して返し、名前と説明を付けることができます。VBでは、PASSWORDメソッドに引数としてNullが指定されます。

Javaの使用は、最初は似ています。

まず、接続を確立し、TestFactory(およびテストケースのリスト)を取得します。

QcConnect qc = new QcConnect(server, login, password, domain, project);
ITDConnection qcConnection = qc.getConnection();

ITestFactory qcTestFactory = qcConnection.testFactory().queryInterface(ITestFactory.class);
IList qcTestList = qcTestFactory.newList("");   

qcTestListには、テストプランのすべてのテストが含まれています。

ITest test = qcTestList.item(1);      
ISupportTestParameters testParam = test.queryInterface(ISupportTestParameters.class);
ITestParameterFactory paramFac = testParam.testParameterFactory().queryInterface(ITestParameterFactory.class);

今のところ問題ありません。すべての「キャスト」は成功しています。ここで、VBの場合と同様に、TestParameterFactoryでaddItemメソッドを呼び出します。

Com4jObject com = paramFac.addItem(null);

これは機能しません。addItem()-メソッドは常にnullを返します。ランダムな文字列、ランダムな整数、テストケースのIDなど、さまざまな引数を試しました。何も機能しません。

このメソッドをJavaで正しく使用するにはどうすればよいですか?

または一般的に:Javaを使用してテストプランの既存のテストケースにパラメーターを追加するにはどうすればよいですか?

クイックノート:テストプランへのテストケースの追加は、このテストケースへのパラメーターの追加と非常によく似ています。また、ファクトリとaddItemメソッドを使用します。VBではパラメータとしてnullを指定しますが、Javaでは文字列(テストの名前として解釈されます)を使用します。しかし、私が言ったように、それはここでは機能しません。

4

3 に答える 3

2

私はついにこれに対する答えを見つけました:

Com4jObject obj = iTestParameterFactory.addItem(new Variant(Variant.Type.VT_NULL));
iTestParameter = obj.queryInterface(ITestParameter.class);
iTestParameter.name("AAB");
iTestParameter.defaultValue("BBB");
iTestParameter.description("CCC");
iTestParameter.post();

よろしく。

于 2012-07-05T15:52:56.353 に答える
0

PASSWORDに渡したいのはDBNullであり、nullではありません。VBでも同じですが、Javaと.NETでは違います。

Com4Jを使用してDBNullがどのように公開されるかわからない。

このサイトでこれについてもっと読んでください。

于 2012-03-18T20:08:30.007 に答える
0
//C# code snippet -> You have to use DBNull.Value instead of null        
//Add new parameter and assign values
    TestParameter newParam =(TestParameter)tParamFactory.AddItem(DBNull.Value);
    newParam.Name = "ParamNew";
    newParam.DefaultValue = "DefaultValue";
    newParam.Description = "AnyDesc";
    newParam.Post(); 
于 2016-09-21T10:31:11.493 に答える