問題タブ [xunit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
unit-testing - プライベートディレクトリで関数をテストする方法は?
私はMATLABxUnitを使用していくつかのコードをテストしています。private
ディレクトリ に含まれているいくつかの関数を直接呼び出せるようにしたいと思います。
簡単な複製可能なセットアップは次のとおりです。2つのフォルダcode
とを含むプロジェクトディレクトリを自分で作成しますtest
。でcode
、という名前のサブディレクトリを作成して、ディレクトリprivate
ツリーが次のようになるようにします。
code
ディレクトリに関数を配置します
private
dirに関数を配置します
test
dirに関数を配置します
次に、テストディレクトリに移動して、を呼び出しますruntests
。sub
未定義であるというエラーが表示されるはずです。
private
matlabパスではディレクトリが許可されていないため、これはオプションではありません。すべてのプライベート関数へのハンドルを取得する関数をdirに配置することもできcode
ますが、これはハッキーのようです。
プライベート機能をテストするためのアクセスを取得するための最良の方法は何ですか?
編集:
プライベートディレクトリに移動するという考えには問題があります。理論的には、例えば、
残念ながら、テストフレームワークは、を呼び出すとすぐにテストを含むディレクトリに移動しますrun
。
wcf - FaultException.Detail を出力する .NET ユニット テスト ランナー
WCF サービスでいくつかの単体テストを実行しています。サービスは、障害応答に例外の詳細を含めるように構成されています (私のサービス構成ファイルには次のものがあります)。
テストによってサーバー上で未処理の例外が発生した場合、完全に設定されたサーバー スタック トレースを使用して、クライアントが障害を受け取ります。これは、例外のToString()
メソッドを呼び出すことで確認できます。問題は、これが私が試したどのテスト ランナー (xUnit、Gallio、MSTest) でも出力されないように見えることです。それらは、例外の Message および StackTrace プロパティを出力するだけのようです。
私が何を意味するかを説明するために、次の単体テストは 3 つのセクションを出力します。
- エラーメッセージ
- エラー スタック トレース
- 標準コンソール出力 (必要な情報が含まれています。たとえば、「Fault Detail は、IncludeExceptionDetailInFaults=true によって作成された可能性が高い ExceptionDetail と等しく、その値は次のとおりです: ...」
編集:ただし、 オブジェクトのプロパティ内のコンテンツを確認するために、各テストで例外をキャッチしてコンソールに書き込むことを余儀なくされないようにしたいと思います。FaultException
Detail
例えば、
この情報があれば、テストと展開の初期段階での負担が大幅に軽減されます。
各単体テストを一般的な例外ハンドラーでラップし、例外をコンソールに書き込み、すべての単体テスト内で (上記のように) 再スローできることはわかっていますが、これを達成するには非常に長い方法のようです (そして、かなりひどく見えるでしょう)。 )。
未処理の例外が発生するたびにこの情報を含める方法があるかどうかは誰にもわかりませんか? 不足している設定はありますか? サービス構成に適切な障害処理が欠けていますか? おそらく、何らかのユニット テスト フレームワーク用の何らかのプラグイン/アダプターを作成できますか? おそらく、代わりに使用する必要がある別の単体テスト フレームワークがあります。
私の実際のセットアップは、開発環境用に Gallio を介して実行される xUnit ユニット テストですが、エンジニアに xUnit GUI テスト ランナー (またはGallio など) を使用して、最終的な展開を簡素化します。
ありがとう。
アダム
jenkins - Hudson がサポートする JUnit XML 形式の仕様は何ですか?
Hudson を継続的インテグレーション サーバーとして使用しており、「JUnit テスト結果レポートを公開する」オプションを使用したいと考えています。ただし、テストに xUnit ツールは使用しません。代わりに、テストを実行して結果を単純な形式で返すシェル スクリプトを使用しています。これらの結果を JUnit 形式に変換するスクリプトを作成しようと考えています。だから私はJUnitファイルがどのように見えるべきか興味深いですか?
msbuild - MSBuild - xUnit (.net) テストを実行しようとしています
ビルド時に xUnit テストを実行する C# プロジェクトをセットアップしようとしているので、継続的インテグレーションで使用できます。通常のプロジェクト、xUnit を使用したクラス ライブラリ テスト プロジェクト、およびテスト ランナー プロジェクトがあります。私が読んだすべてから、テストランナープロジェクトでこれを行うことでこれを機能させることができるはずです:
変更後 (通常は .csproj ファイルを編集して) ソリューションをビルドすると、次のようになります。
"Xunit.Runner.MSBuild.xunit" タスクをアセンブリ C:\Users[myusername]\Code\OnePageOneDb\OnePageOneDb.TestRunner\xunit.runner.msbuild.dll から読み込めませんでした。ファイルまたはアセンブリ 'file:///C:\Users[myusername]\Code\OnePageOneDb\OnePageOneDb.TestRunner\xunit.runner.msbuild.dll' またはその依存関係の 1 つを読み込めませんでした。システムは、指定されたファイルを見つけることができません。宣言が正しいこと、アセンブリとそのすべての依存関係が利用可能であること、および Microsoft.Build.Framework.ITask を実装するパブリック クラスがタスクに含まれていることを確認してください。
xunit.runner.msbuild.dll と xunit.runner.utility.dll を参照先のプロジェクトに追加しても、このメッセージが表示されます。しかし、変更せずに再度ビルドすると、一貫して次のようになります。
「xunit」タスクが見つかりませんでした。以下を確認してください: 1.) プロジェクト ファイル内のタスクの名前がタスク クラスの名前と同じである。2.) タスク クラスは "パブリック" であり、Microsoft.Build.Framework.ITask インターフェイスを実装します。3.) タスクは、プロジェクト ファイル、または "C:\Windows\Microsoft.NET\Framework\v4.0.30319" ディレクトリにある *.tasks ファイルで正しく宣言されています。
しかし、私はこれらすべてをチェックしました:
- xunit.runner.msbuild.dll のタスク クラスは
Xunit.Runner.MSBuild.xunit
(および xunit はクラス名の小文字です)。 - task クラスは、ITask を実装する Task を継承します。
- なので、UsingTask に問題があるのかもしれませんが、それが何かはわかりません。
(問題は、xunit.runner.msbuild.dll が .NET 2.0 を対象としていて、VS 2010 を使用している可能性も考えましたが、テスト ランナー プロジェクトを .NET 2.0 で再作成しましたが、問題は解決しませんでした。)
誰でも助けることができますか?
unit-testing - xUnit を使用した単体テストの例外メッセージ
現在、MsTest 単体テストを xUnit に変換しています。xUnit で、例外メッセージをテストする方法はありますか? 例外タイプだけではなく、例外メッセージをテストするのは正しいですか?
c++ - Jenkins xUnit プラグインの問題
私が取り組んでいる C++ プロジェクトに UnitTest++ を使用するために、Jenkins サーバー (Windows 7 上) と xUnit プラグインをインストールしました。
TestUnit++ がワークスペース内のディレクトリにレポートを生成するように、ジョブ スクリプトを構成します。しかし、「テスト ツールの結果レポートを公開する」を有効にしてから、コンボボックスの「追加」、「UnitTest-1.4」をクリックしても、何も起こりません。行は追加されず、実際には何も変更されません。「追加」コンボボックスの他の選択肢と同じです。
正しく使用していますか? プラグインは正しくインストールされていますか? 依存関係の問題?他のアイデアはありますか?
ありがとう
c# - 単体テストの c# プロパティ
多くのプロパティを持つクラスを使用しています。例えば;
次に、単体テストを行います。私はxUnitテストを次のように行いました
ここで、expected = 3 をハードコーディングする方法が嫌いです。アクセサとミューテータについてこのプロパティをテストする良い方法は何ですか?
asp.net-mvc - ASP.NET MVC での単体テスト
単体テストと TDD アプローチを作成するためのテスト フレームワークの使用に着手したところです。NUnit が最良の選択肢でしたが、XUnit に行くのが良いと感じた経験がありませんでした。私が持っている MVC の本で調べてきた MS Unit のテスト方法を XUnit の同等のものに置き換えようとしていて、すでにつまずいています。
具体的には次のとおりです。 インデックスなどのビュー コレクションのエントリのリストをテストします。
XUnitでこれをどのように行いますか、またはこのように行うことはできませんか?
XUnit のドキュメントが不足していて、NUnit の方が適切なオプションであるかどうか疑問に思っています........
また、テスト コードはほぼ独自の言語のようです。すべてのプロジェクトで実行できる共通のテスト セットがあると言っても過言ではありません。
TDD に関して..概念は理解できますが、テスト自体は、テスト内容とテスト内容において単体テストと同じですか? 実際の違いは、それらが書かれたとき以外にはわかりません!
.net - xUnit.netAutoRollbackとマルチスレッドの使用
xUnit.netとxunit拡張機能によって提供されるAutoRollback属性を使用してテストケースを作成しようとしています。
私のテストケースはこのようになります
このテストケースは失敗し、新しいスレッドのデータの読み取り中に接続タイムアウト例外をスローします。私が見つけた問題は、テストケースがAutoRollback属性のためにトランザクションを開始し、データを挿入している間、最後にロールバックのためにテーブルをロックすることです。テストケースによって生成された新しいスレッドは、親スレッドによってロックされているため、同じテーブルからデータを読み取ることができません。ただし、同じスレッドでデータを読み取ることができます。
誰かが解決策を持っていますか?上に挿入したデータを読み取る複数のスレッドを実行したい。
.net - XUnitでのMolesの使用-間違ったdllバージョン
ユニットテストで使用するようにMolesを設定しようとしています。私たちはxunitを使用しているので、私はusing
moles()に付属するXunit拡張機能ですMicrosoft.Moles.Framework.Xunit
。ただし、Xunit 1.7を実行しているため、Molesはバージョン1.6.1.1521(を使用FileLoadException
)を実行していないと文句を言っています。
Molesマニュアル(28ページ)には次のように書かれています。
xUnit.netバージョン:
1.5.0.1479(他のxUnit.netバージョンの場合、ソースから属性を再コンパイルします)
これは私が立ち往生しているところです-このxunit拡張機能のソースコードはどこかで入手できますか?または、Molesが必要とする特定のバージョンのxunitを使用する必要がありますか?