この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 31285|答える: 3

[出典] .net/c#はxunitユニットテストを使用しています

[リンクをコピー]
掲載地 2019/01/22 14:58:26 | | | |
現在、在籍中です。 Netフレームワークのテストツールには主にNunit、組み込みのMSTest、Xunitが含まれており、この記事ではVSの新星であるXUnitの使い方を簡単に紹介します。

xunitがサポートする最小実行時間は です。 NET 4.5.2その多くはそれより高くなっています。 たとえ4.0クラスライブラリを作れたとしても、少なくとも.NET 4.5.2では動作します。 詳細リンク:https://github.com/xunit/xunit/issues/1817


まず、新しい.NET 4.5.2コンソールプロジェクトを作成しました。名前はitsvse-testで、xunitの最新バージョンは2.4.1なので、nugetコマンドは以下の通りです。

各パッケージは所有者からライセンスを受けています。 NuGetはサードパーティ製パッケージに対して責任を負わず、ライセンスも行いません。 一部のパッケージには、他のライセンスの対象となる依存関係が含まれている場合があります。 パッケージソース(ソース)URLをクリックすると依存関係を確認できます。

Package Manager コンソールホストバージョン 4.7.0.5212

「get-help NuGet」と入力すると、利用可能なすべてのNuGetコマンドが表示されます。

PM> インストールパッケージ xunit -バージョン 2.4.1


収集と標的化の試みがなされています。 NETFramework, Version=v4.5.2" プロジェクトの「itsvse-test」の「xunit.2.4.1」パッケージについて
依存関係情報の収集には2.1秒かかります
DependencyBehaviorを「Lowest」に設定したパッケージ「xunit.2.4.1」の依存関係を解決しようとしています。
依存情報の解析には0msかかります
パッケージ「xunit.2.4.1」をインストールするための解析操作
「xunit.2.4.1」パッケージをインストールする操作が解決されました
「cnblogs」から「xunit 2.4.1」パッケージを取得
「cnblogs」からパッケージ「xunit.abstractions 2.0.3」を取得
「cnblogs」からパッケージ「xunit.analyzers 0.10.0」を取得
「cnblogs」からパッケージ「xunit.assert 2.4.1」を取得してください。
「cnblogs」から「xunit.core 2.4.1」パッケージを取得
「cnblogs」からパッケージ「xunit.extensibility.core 2.4.1」を取得
「cnblogs」から「xunit.extensibility.execution 2.4.1」パッケージを取得
  取得https://api.nuget.org/v3-flatcon ... 1/xunit.2.4.1.nupkg
  取得https://api.nuget.org/v3-flatcon ... actions.2.0.3.nupkg
  取得https://api.nuget.org/v3-flatcon ... it.core.2.4.1.nupkg
  取得https://api.nuget.org/v3-flatcon ... .assert.2.4.1.nupkg
  取得https://api.nuget.org/v3-flatcon ... ty.core.2.4.1.nupkg
  取得https://api.nuget.org/v3-flatcon ... ecution.2.4.1.nupkg
  取得https://api.nuget.org/v3-flatcon ... lyzers.0.10.0.nupkg
  わかりましたhttps://api.nuget.org/v3-flatcon ... actions.2.0.3.nupkg116ミリ秒
  わかりましたhttps://api.nuget.org/v3-flatcon ... 1/xunit.2.4.1.nupkg117ミリ秒
xunit.abstraactions 2.0.3をインストールしています。
xunit 2.4.1をインストールします。
  わかりましたhttps://api.nuget.org/v3-flatcon ... it.core.2.4.1.nupkg151 ms
xunit.core 2.4.1をインストールしています。
  わかりましたhttps://api.nuget.org/v3-flatcon ... .assert.2.4.1.nupkg167ミリ秒
xunit.assert 2.4.1をインストールします。
  わかりましたhttps://api.nuget.org/v3-flatcon ... ty.core.2.4.1.nupkg221 ms
xunit.extensibility.core 2.4.1をインストールしています。
  わかりましたhttps://api.nuget.org/v3-flatcon ... lyzers.0.10.0.nupkg200ms
xunit.analyzers 0.10.0をインストールしています。
  わかりましたhttps://api.nuget.org/v3-flatcon ... ecution.2.4.1.nupkg306ms
xunit.extensibility.execution 2.4.1をインストールします。
「xunit.abstractions.2.0.3」というパッケージを「C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages」フォルダに追加する
パッケージ「xunit.abstractions.2.0.3」がフォルダ「C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages」に追加されました。
「xunit.abstractions.2.0.3」というパッケージを「packages.config」に追加しました。
itsvse-testに「xunit.abstraactions 2.0.3」を正常にインストールしました
ツールセットのみのパッケージ「xunit.analyzers.0.10.0」を「itsvse-test」に追加する
「xunit.analyzers.0.10.0」というパッケージを「C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages」フォルダに追加しています。
「xunit.analyzers.0.10.0」というパッケージが「C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages」フォルダに追加されました。
「xunit.analyzers.0.10.0」というパッケージを「packages.config」に追加しました。
スクリプトファイル「C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages\xunit.analyzers.0.10.0\tools\install.ps1」
「xunit.analyzers 0.10.0」がITSVSE-testに正常にインストールされました
「xunit.assert.2.4.1」というパッケージを「C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages」フォルダに追加する
「xunit.assert.2.4.1」というパッケージが「C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages」フォルダに追加されました。
「packages.config」に「xunit.assert.2.4.1」というパッケージを追加しました。
「xunit.assert 2.4.1」がITSVSE-Testに正常にインストールされました
「xunit.extensibility.core.2.4.1」というパッケージを「C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages」フォルダに追加する
「xunit.extensibility.core.2.4.1」というパッケージが「C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages」フォルダに追加されました。
「xunit.extensibility.core.2.4.1」というパッケージを「packages.config」に追加しました。
「xunit.extensibility.core 2.4.1」がITSVSE-Testに正常にインストールされました
「xunit.extensibility.execution.2.4.1」というパッケージを「C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages」フォルダに追加する
パッケージ「xunit.extensibility.execution.2.4.1」が「C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages」フォルダに追加されました。
「xunit.extensibility.execution.2.4.1」というパッケージを「packages.config」に追加しました。
「xunit.extensibility.execution 2.4.1」がITSVSE-testに正常にインストールされました
「xunit.core.2.4.1」というパッケージを「C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages」フォルダに追加する
「xunit.core.2.4.1」というパッケージが「C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages」フォルダに追加されました。
「packages.config」に「xunit.core.2.4.1」というパッケージを追加しました。
「xunit.core 2.4.1」がITSVSE-Testに正常にインストールされました
「xunit.2.4.1」という依存関係のみのパッケージを「itsvse-test」プロジェクトに追加します。
「xunit.2.4.1」というパッケージが「C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages」フォルダに追加されます。
「xunit.2.4.1」というパッケージが「C:\Users\itsvse_pc\Source\Repos\itsvse-test\packages」フォルダに追加されました。
「xunit.2.4.1」というパッケージが「packages.config」に追加されました。
「xunit 2.4.1」がITSVSE-Testに正常にインストールされました
ヌゲットは実行に5.51秒かかりました
経過時間:00:00:07.7781544
PM>
プラグインパッケージをインストールしてください:xunit.runner.console(この記事では省略)とxunit.runner.visualstudio

ここでxUnitはフレームワークです。そしてxunit.runner.visualstudioはVSプラグインパッケージですVSで簡単にデバッグできるように。xunit.runner.consoleのインストールもCMDでデバッグ可能ですしかし、もしこれがサポートされれば、このフレームワークを使う人はあまりいないと思います。結局のところ、コマンドの入力方法がVisual Studioの性能を大きく下げるため、ここでは説明しません。

ここではxunit.runner.visualstudioプラグインパッケージをインストールし、ソリューションエクスプローラーでプロジェクトを右クリックして「NuGet Packagesの管理」を選択します。 xunit.runner.visualstudioというパッケージを検索してインストールしてください:



テストブラウザが見えるか確認してください(テストエクスプローラー>テスト>ウィンドウにアクセスしてください)。 プロジェクトが構築されるたびに、ランナーはそのプロジェクト内のユニットテストを発見します。 発見期間の後、発見された検査のリストが表示されるはずです:



プログラムファイルを編集し、以下のコードを変更してください:

「全実行」ウィンドウのリンクをクリックすると、テストを実行するとテストエクスプローラーのウィンドウで結果の更新が表示されるはずです:



失敗したテストをクリックすると、失敗メッセージとスタックトレースが表示されます。 スタックトレース行をクリックすると、失敗したコード行に直接移動できます。

(終わり)





先の:Sleep Your Sister 目覚まし時計 v4.6.1 プロフェッショナル有料プレミアム中国語版
次に:本日のC#学習ノート
 地主| 掲載地 2019/01/22 15:19:24 |
Xunitはテストクラスにタグ付けする必要がありません

xUnitは[Fact]と[Theory]の両方のプロパティをサポートしています。 コードからもわかるように、[Fact]は私たちが書く実際の呼び出しコードに似ており、[Theory]はInlineDataで複数のパラメータセットを1つのメソッドで直接テストできます。

 地主| 掲載地 2019/01/22 15:31:55 |
異常検査

XunitはAttributesで例外キャッチをフラグ付けするのではなく、Assert.Throwsアサーション関数を直接使用して例外を検証します。

    パブリッククラステストクラス1
    {
        [事実]
        パブリック・ボイド・テストException()
        {
            Assert.Throws<InvalidOperationException>(() => 操作());
        }

        ヴォイド演算()
        {
            新しいInvalidOperationException();
        }
    }



テストケース名を変更する:

     [Fact(DisplayName = 「Max Function Test」)]



テストケースをスキップする:

     [事実(skip=「リファクタリング不完全」)]



グループ分け:

     [特性(「グループ」、「カテゴリー」)]
 地主| 掲載地 2019/01/22 15:37:28 |
多くの場合、ユニットテストがデータベースの内容に影響を与えないようにしたいですし、時にはデータベースの影響でユニットテストが非常に遅くなることもあるため、永続性部分を隔離したいと考え、ユニットテストを行う際にはデータを永続化しないことが多いです。 この種の分離 私たちは一般的に抽象化を用い、インターフェースや抽象クラスを使って永続性層を分離し、その後モックで対応するインターフェースをシミュレートしたり、抽象クラスで対応する永続性クラスを完成させます。 MoQはそのモックフレームワークの一つで、C# 3.0を使用しています。これはNMockよりも使いやすく、強い型付けの方法であり、ソースコードやdllにアクセスできますハイパーリンクのログインが見えます。ダウンロード。 MoQの最新リリースはバージョン3.1で、4.0はまだベータ版です。
https://www.cnblogs.com/catcher1994/p/5498530.html
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com