問題タブ [nunit]

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.

0 投票する
3 に答える
1149 参照

vb.net - 奇妙な nUnit 単体テストの失敗

私はclassXを持っています:

Sub New (文字列としての ByVal item_line_no、文字列としての ByVal item_text)

および次の unti で 1 つの障害点をテストします

テストを実行すると、「行番号が 4 文字を超えています」という例外でメッセージがスローされると予想されます

ただし、単体テストは次のメッセージで失敗します

単純なことだと思いますが、それは私を狂わせます。

注:ExpectedExceptionの宣言では、代わりにそれを示す廃止された警告が表示されます

そのはず

ただし、これは ExpectedException が宣言されていないというエラーをスローします!

0 投票する
6 に答える
5160 参照

c# - NUnit テストをデバッグする最良の方法は何ですか?

私のプラットフォーム: Visual C# 2008 Express Edition with NUnit 2.2.7

あるプロジェクトに自分のコードを含むソリューションがあり、同じソリューション内の別のプロジェクトに NUnit 単体テストがあります。

私は、NUnit テストのデバッグとシングルステップに苦労しています。次の呼び出しを提案するオンラインの参考文献をいくつか見つけました。

しかし、これはコンパイルさえしません - コンパイラエラーがあります:

エラー 1 タイプまたは名前空間名 'Runner' が名前空間 'NUnit.ConsoleRunner' に存在しません (アセンブリ参照がありませんか?)

見つけたすべてのアセンブリ参照を追加しましたが、効果はありません。

最後に、これは私が一緒にハッキングしたもので、うまくいきますが、おそらくあなたの良い読者はより良い解決策を提案することができます:

1) 私のテスト プロジェクトでは、デバッグするテスト ケースのクラス名は MyTestClass です。Init() という名前の [TestFixtureSetUp] メソッドがあり、実際のテスト ケースは [Test] 関数 MyTest() にあります。

2) 私のコード プロジェクトには、EXE にコンパイルされるコンソール プログラム TestProgram.cs があります。

TestProgram.cs では、次の方法でテスト ケースを呼び出します。

これは機能し、テスト ケースをデバッグしてシングル ステップで実行できます。

追加のプラグインにお金を払わずにVisual Studio 2008 Express を使用するためのより良い提案があれば、アドバイスをいただければ幸いです。

0 投票する
1 に答える
1366 参照

c# - Application.ExecutablePath は、テスト ランナーによって異なる値を返しますか?

複数のテストランナーで一貫した単体テスト結果を得る方法があるかどうかを確認しようとしています。現在の状況では、NUnit GUI で実行すると 4 つのテストに合格するテスト アセンブリがありますが、TestDriven.NET または ReSharper テスト ランナーを使用して実行すると失敗します。これらのテストが失敗する (System.NullReferenceException がスローされる) 場合、Application.ExecutablePath は、テスト アセンブリの DLL ではなく、テスト ランナーの実行可能ファイルを返しているように見えます。

使用する必要がある Application.ExecutablePath 以外の値はありますか (現在、DLL の .config ファイル内の値にアクセスするために使用しています)。他のテスト ランナーが失敗しているときに、NUnit GUI が正しく動作する原因となる (またはしていない) ことは何ですか?

0 投票する
1 に答える
1133 参照

nunit - NCoverアドインを使用したNCoverNunitCruiseControl.NETタスク

誰かがnunitdllのncoverタスクのサンプルを提供できますか?

0 投票する
4 に答える
294 参照

nunit - 2つの日付がNUnitの特定の許容範囲内にあるかどうかをテストするにはどうすればよいですか?

2つの日付がNUnitの特定の許容範囲内にあるかどうかをテストするにはどうすればよいですか?

0 投票する
1 に答える
2809 参照

nunit - バージョン 2.0 の取得は、NUnit の実行時に互換性のあるバージョンではありません

NUnitのサンプル テストを実行しようとしていますが、エラーが発生します。supportedRuntimeバージョンを v1.0.3705 から v2.0.50727 に設定しています。requiredRuntimeバージョンを v2.0.50727 に設定しています。これは間違った設定ですか?

表示されるエラーは次のとおりです。

メタデータ ファイル 'c:\Program Files\NUnit 2.4.8\bin\nunit.framework.dll' を開けませんでした -- 'バージョン 2.0 は互換性のあるバージョンではありません.'

0 投票する
1 に答える
737 参照

asp.net - Sessionオブジェクトに依存するユニットでユーザーコントロールをテストする方法

ASP.NETを使用してアプリケーションを構築し、最新バージョンのNUNITフレームワークを使用してテストしています。カスタムメニューを作成するためのユーザーコントロールを作成しています。そのコントロールは、ある時点で、特定のオブジェクトがセッションコレクションに存在するかどうかをチェックするか、メニューにいくつかの要素を追加しないかをチェックします。

それが提供する正確な機能は次のとおりです。登録ユーザーが通常のユーザーである場合は通常のリンクのセットを表示し、登録ユーザーが管理者である場合はすでに表示されているリンクに追加のリンクを追加します。コントロールは期待どおりに機能します。

私の問題:
Webアプリケーションの外部で制御を取得し、NUNITテストフレームワーク内で個別にテストしたいと思います。私の唯一の懸念は、Sessionオブジェクトの存在に依存していることです。可能であれば、nunitテストメソッド内でそれをシミュレートする方法がわかりません。または、私が考えていなかった代替ソリューションがあります。

0 投票する
4 に答える
3254 参照

vb.net - VB.NET 1.1でオブジェクトのシリアル化/逆シリアル化を単体テストするにはどうすればよいですか?

オブジェクトをメモリストリームからシリアル化および逆シリアル化するための単体テストを提供するサンプルコードを探しています。C#2.0を使用した例を見つけましたが、現在のプロジェクトではVB.NET 1.1を使用しているため(理由は聞かないでください...)、ソリューションではジェネリックを使用できません。また、単体テストにはNUnitフレームワークを使用しています。

ありがとう!

0 投票する
3 に答える
1053 参照

unit-testing - ASP.NET プロバイダー モデルを使用して記述されたコードの統合テストを行うにはどうすればよいですか?

私はユニットテストにかなり慣れていません。UI -> BLL -> DAL の 3 層アーキテクチャで構築されたサイトがあります。また、asp.net プロバイダー モデルを使用したので、web.config を変更することで、DAL dll に切り替えてさまざまなデータ ソースをターゲットにすることができます。DAL は Entity Framework で作成されます。

さて、私の質問は、BLL を単体テストするにはどうすればよいですか? NUnitを使用しています。

私のサイトを実行/デバッグする場合、asp.net/IIS はすべてをロードし、web.config から正しい構成を取得します。これは、エントリ ポイントが IIS からのものであるためです。ここで、NUnit gui を使用してテストし、BLL に対するテスト ケースを含むテスト プロジェクト "MySite.Test.dll" があるとします。テスト フレームワークは、すべてのテストを正常に実行するための正しい構成をどのように取得しますか。正しいプロバイダーをロードするには、web.config の情報が必要です。

現在、私の DAL には、EntityFramework によって作成された App.config があり、その中には connectionString だけがあります。この app.config にすべてのプロバイダー関連の構成を配置する必要がありますか? または、これを正しく行う方法の全体像が欠けていますか?

これは、人々が常に行う必要があると私が想像する一般的なことです。ライブラリを単体テストする方法について、誰かが詳細を教えてください。

ありがとう、レイ。


編集: 最初の 2 つの回答を読んだ後、統合テストで説明を修正する必要があると思います。基本的に、IIS をエントリ ポイントとして使用する代わりに、NUnit などの GUI ツールを使用してコードを実行およびテストします。つまり、NUnit -> BLL -> DAL です。人々は実際にどのようにそれを設定しますか?

ありがとう、レイ。

0 投票する
12 に答える
1287 参照

tdd - 開発者は TDD に不満を持っています。TDD が本当に問題なのか、それとも初心者の実践者のスキル不足なのか?

(これは TDD のメリットを調査するための質問ではありません。そのような議論の場は他にもあります。事前に感謝します。)

私は、テスト駆動開発や NUnit に対する不満を報告している、この手法の初心者である開発者が多すぎるのを経験してきました。

次のような否定的な意見を耳にします。

  • NUnitは苦手です。 1年前に試してみましたが、使い方を忘れてしまいました。代わりに、テスト ハーネスとしてアドホックに書いたばかりのこの Windows フォーム アプリを使用してみましょう。テスト コードはとにかく使い捨てのコードです。違いは?とにかく、私のやり方は過去に十分に機能しました。」

  • 私は TDD について懸念があります。私たちの最後のプロジェクト (ちなみに、TDDを使用した最初で唯一のプロジェクト経験でした) では、もはや設計が何であるかさえ知りません。」

  • 「これ以上のコード コメントは悪いことですか? 気が狂っていますか? 差し支えなければ、本当にやるべきことがいくつかあります。」(昔から、コメントが多いほど良いコメントであり、コメントが多すぎることはありません。)

初心者が、TDD を使用した初めてのプロジェクトで TDD がおそらく満足のいくように「機能しなかった」と不平を言った場合、それは本当に彼らを失敗させた TDDなのか、それとも開発者自身のスキルがまだ良い結果を得るのに十分ではないのか?

そして、彼らがそれを言って私を嫌うことなく、どうすればそれを伝えることができますか?

問題の核心は、私たちの重要な仕事上の関係を危険にさらすことなく、開発者が新しい開発技術で自分たちの初期の不十分な能力をより正直に評価することを奨励するために、開発者に外交的に何を伝えることができるかということです.

通常、多くの開発者は、最初のプロジェクトの段階で、TDD の多くの重要な要素を十分に活用するための実用的な知識をまだ備えていません。

たとえば、私が話した開発コミュニティの不満を言う人は、次のような典型的なものです。

  • コードのにおいのリストを見たり覚えたりしようとしたことさえありません。

  • リファクタリングのカタログを調べようとさえしたことがなく、実際のプロジェクトや学習用のおもちゃのプロジェクトでそれらを実践したこともありません。一部の人々にとっては、リファクタリングを非常にうまく行うために、もっと多くの OOP を学ぶ必要があるかもしれません。リファクタリングには、Visual Studio 2005 の [リファクタリング] メニューに項目として表示される「メソッドの名前変更」と「変数の名前変更」だけではありません。

  • (リファクタリングを介して) 創発的な設計を使用して実装された実際のプロジェクトを調査したり参加したりしたことはありません。事前に設計を使用してプロジェクト全体を実行することと、コードが書かれた後にのみ単体テストを作成するプロジェクト全体を実行することとの違いを知り、それらのいずれかの間のトレードオフと適用性。

彼らは皆、かつてNUnit を使用していたようで、それを使って何をしたとしても、それは TDD だった、と彼らは考えているようです。NUnit または単体テストの存在は、単純に TDD を意味するものではありませんが、それを知るにはまだ十分に理解していません。

これらは賢い人々です。開発者は賢い人です。なぜなら、それが職業全体への入り口だからです。そうしないと、長時間占領できません。もちろん、彼らがこれらの資料を勉強するためにしばらく努力すれば、それを理解することができました。

方法論やその結果を評価するには、経験と知識の合計が明らかに弱すぎるのに、どうやって方法論が弱いと自分に言い聞かせることができるでしょうか?

それは自己防衛的な行動だと私は信じています。またはそれは怠惰です。Fowler's Refactoring book のカタログからリファクタリングを 3 つ挙げることさえできない場合、またはコードのにおいをいくつか挙げることができない場合、あなたはリファクタリングのランク初心者であり、おそらく TDD 方法論全体と、いわゆる 1または 2 プロジェクトの経験は明らかに十分ではありません。

TDD での成功が決定的に依存しているスキルについてもっと学ぶために必要なことを人々にさせるために、人々に何を言うことができるか、または人々の注意をどの資料に向けることができますか?

  • 単体テスト、
  • リファクタリング、
  • デザインパターン、
  • オブジェクト指向の設計と分析?

これらの各トピックに関する本が丸ごとあり、中には非常に優れたものもあります。飲み込みやすい学習テクニックもあるかもしれません。私は模範を示して人々に教えることができますが、私自身が彼らに与える時間は限られています。

さらに、彼らは一緒に行きます。彼らはお互いなしではうまく機能しません。単体テストとリファクタリングは、ピーナッツ バターとゼリーのように連携します。単体テストを grep できない場合は、リファクタリングでまったく良い結果が得られないでしょう!! (まだわからない場合は、理由を尋ねてください。新しい人に喜んで説明します。)

また、私が何を言おうと、それが裏目に出ないようにすることも重要です。

同僚をTDD の概念から遠ざけてはなりません。さらに、同僚を私から遠ざけてはなりません。 私はこれから何年もの間、毎週彼らと一緒に働かなければなりません。

プログラミングの他の面で非常に熟練していることをすでに確立している他の長年の上級開発者を動揺させないことは特に困難です。彼らは過去の業績を当然誇りに思っていますが、彼らのエゴやプログラミングのすべてを熟知しているという自己概念は、感情を傷つけることなく対処することはほとんど不可能です. 一部の上級開発者は、他の人から学ぶべきいくつかの新しいテクニックを知らないことに直面する準備ができていません。上級開発者は、プログラミングに関しては専門家であることに慣れていて快適です。また、TDD や関連する手法やテクノロジに関しては完全に非現実的であっても、専門家として見なされることを要求することがあります。

構造化された自動ユニット テストの記述に関して常駐の「抵抗者」の 1 人を好転させるのにかなりの成功を収めた 1 つの方法は、彼らと 1 対 1 でペア プログラミングを使用することです。ペアプログラミングは、より経験豊富で知識のある実践者の直接的な指導とともに、訓練生にいくつかの実際の例と経験を与えると思います.

しかし、ペアプログラミングだけでは不十分です。彼らが学ぶ必要のあるリファクタリング、コードの匂い、OOP の概念、および OOD&A の概念は他にもたくさんあります。