1

私は c# テストの初心者です。Web サービス テスト用の単体テストを書いています。C# 単体テスト ソリューションにサービス参照を追加し、テスト用に Web サービスのクラスを使用し始めました。単体テストの値を提供する Excel ファイルも追加しました。

以下は、私が以前に行っていたことの例です

[DataSource("System.Data.Odbc"
 ,"Dsn=Excel Files;dbq=|DataDirectory|\\TestData.xlsx;defaultdir=C:\\TestData;driverid=1046;maxbuffersize=2048;pagetimeout=5"
 ,"Sheet1$"
 ,DataAccessMethod.Sequential)
 ,DeploymentItem("TestProject1\\TestData.xlsx")
 ,Owner("")
 ,Description("")
 ,TestMethod()]
public void test1()
{
    try
    {
        var Service = new Service.ServiceClient();
        var Cid = testContextInstance.DataRow["CId"].ToString();
        var MNumber = testContextInstance.DataRow["MNumber"].ToString();
        var VID = testContextInstance.DataRow["VID"].ToString();
        var isVisit = new Service.ISVisit()
        {
            CID = Cid,
            MNum = MNumber,
            VCode = VID
        };

    var first = Service.Medis(isVisit).Cast<Service.ISMedi>().FirstOrDefault();
    // Assert
    Assert.AreEqual("12345678", first.Proc.ProcID);
    }
    catch (Exception ex1)
    {
        if (ex1.InnerException != null)
            Debug.WriteLine(ex1.InnerException.Message);
        Assert.Fail(ex1.Message);
    }
}

.Medis() ,IsVisit` は services.i のクラスです。Excel シートを使用して untitest の値を提供しています。

ここに画像の説明を入力

そして、ユニットが渡されます

ここに画像の説明を入力

ここでの要件は、このテスト結果をこの順序で Txt ファイル、CSV、または Excel ファイルにエクスポートすることです。

テスト 1 : テスト結果 + 期間 + 出力 SOAP メッセージ。

テスト 2 : テスト結果 + 期間 + 出力 SOAP メッセージ。

テスト 3 : テスト結果 + 期間 + 出力 SOAP メッセージ。

これで私を助けてください。私は Visual Studio チーム システムを使用して unittest を作成しています。

4

1 に答える 1

2

いくつかのオプションが利用可能です。

Visual Studio は、テストの実行ごとに XML 結果セットを生成します (すべてのテストは 1 回の実行で実行されます)。結果はソリューションのルートにある TestResults フォルダーに配置され、ファイル拡張子は TRX です。テストの実行には、テストの期間とステータスが含まれますが、SOAP 応答は含まれません。これで十分な場合は、単純な XSLT 変換を使用して XML を CSV に変換できます。または、テスト結果を Visual Studio 内から直接 CSV としてエクスポートすることもできます。テスト結果ウィンドウには、テスト結果をインポート/エクスポートするための小さなアイコンがあります。

SOAP 応答が必要な場合、Visual Studio には、このためのテスト ランナー内にネイティブなものはありません。最善の策は、テストの実行中にログ ファイルに追加することですが、ログに記録する内容 (テスト期間を含む) はユーザー次第です。

于 2012-10-16T03:34:12.970 に答える