問題タブ [pex]
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.
pex - Pex の可視性の問題
プロジェクトのコードの一部に単体テストの生成を使用しようとしました。しかし、毎回同じエラーが表示されるだけで、提供されるメッセージは解決策を見つけるのにあまり役に立ちません。Pex は、コードが見えないと言っています。しかし、必要なクラスとその依存関係を別のソリューションに追加すると、正常に機能します。他の誰かがこの問題に直面し、答えを見つけましたか?
tfs - ほくろアセンブリを使用するプロジェクトでTFS2010でビルドを使用すると、参照を解決できないため、-1002で失敗します
何度もプレイした後、テストプロジェクトを除くすべてのプロジェクトでビルドを実行できるようにTFSを取得することができました。これらにはモルアセンブリがあります。
私が得ているエラーは
C:\ Program Files \ Microsoft Moles \ bin \ Microsoft.Moles.targets(79):
コマンド "" C:\ Program Files \ Microsoft Moles \ bin \ moles.exe "
@" C:\ Builds \ 2 \ cv2 \ DevBranchBuild \ Sources \ CV.BL.Tests \ obj \ Release \ Moles \moles.args""
はコード-1002で終了しました。
警告は
C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets(1360):
この参照を解決できませんでした。
アセンブリ"CV.DAL.Moles、Version = 1.0.0.0、Culture = neutral、processorArchitecture=MSIL"が見つかりませんでした。
アセンブリがディスク上に存在することを確認してください。
この参照がコードで必要な場合、コンパイルエラーが発生する可能性があります。
CV.DALは、私がモリングしているアセンブリです。
私は最新バージョンのpexとmolesを使用しています。
また、CV.DAL.moles
ファイルをTFSにチェックインしました(アセンブリではありません)。すべてが私のローカルマシンで完全に正常に構築されます。ビルドに使用しているマシンの構成はまったく同じです。正確には、1つは32ビットで、もう1つは64ビット:o(深刻な監視)です。
何か案は?
これは、ブランチをマージするときにゲートチェックインを壊しているため、ペックスとモグラをまったく役に立たないものにします。これは、かなりの時間を費やしたため、非常に残念です。
編集
どのmolesAssembliesディレクトリですか?
ほくろのインストールフォルダまたはプロジェクトの下のディレクトリ?
インストールフォルダには、両方のマシンで同じファイルとファイルサイズがあります。
c# - Is allowing the possibility of NullReferenceExceptions to occur a Bad Thing?
I'm playing with Pex and Moles and after running Pex found that nearly all the tests that Pex said failed were because NullReferenceExceptions were "allowed". Reading the Pex documentation, I came across the following:
If a higher-level component passes malformed data to a lower-level component, which the lower-level component rejects, then the higher-level component should be prevented from doing so in the first place.
So what the above is suggesting is that we should test for nulls before other methods/classes are called using something like:
IMHO checking for nulls all over doesn't appeal that much for performance and also code bloat reasons but I would like to hear what other people have to say....
regex - Pex インストルメンテーションによってコードの効果が変わる可能性はありますか?
簡単な JSON lexer クラスがあります。を取り、string
を生成しIJSONValue
ます。これにIJSONValue
はToJSONString
、有効な JSON 文字列を返すメソッドがあります。
もちろん、そのためのコードは非常に複雑で、多くの分岐があります。だからこそ、これはペックスの能力をテストするのに最適な場所だと思った. 次のテストを作成しました。
これで Pex を実行すると、null 処理に関するいくつかの非問題が見つかりましたが、これは修正済みです。ただし、意味をなさない例外を報告する多くのメソッドも取得しました。それらは次のようになります。
ただし、これは、動作することがわかっている私のテストの 1 つとかなり似ています。デバッガー内とデバッガー外で実行しましたが、どちらの場合もテストに合格しました。最も不可解なことは、例外テキストが実際には何らかの意味を成すことです。Constant
正規表現が文字列と一致しなかった場合に報告されるテキストです"false"
。他の正規表現の不一致についても同様の例外が発生しますが、これは意味がありません。
Pex がこれが例外をスローすると考えるのはなぜですか? インストルメンテーションが混乱しThreadLocal
たりRegex
、奇妙な方法で混乱したりしますか? これが私の正規表現保持クラスの外観です (簡潔にするために正規表現は編集されています)。
.net-3.5 - 3.5 MsTest ユニット テスト アセンブリでテストを記述できますか?
こんにちは: Pex と Moles をいじって楽しんでいます。今度は、これを本格的に使用して、レガシー アプリを可能な限りカバーします。
.NET 3.5 に変換することから始めました (クライアントはまだ .NET 4.0 でホストできません)。
Moles を機能させるのに問題があることに気付きました。
Test Project アセンブリが .NET 4.0 の場合は動作するようですが、Unit Tests アセンブリ フレームワークを .NET 3.5 に戻すと (Visual Studio 2010 SP1 をインストールしてその機能を提供した後)、動作しなくなります。
「.NET Framework 3.5 をターゲットとするテスト アセンブリから、既定のホスト アダプターを使用してのみテストを実行できます」と不平を言い続けます。
クライアントがユニット テストを含め、すべてを .NET 3.5 にしたい場合...何かアイデアはありますか?
.net - PUT 以外のテストに Pex と Moles を使用する
.NET 4 を使用して、TDD またはその他の形式の自動テストに関して記述されていないコードをテストしたいと考えています。
VS2010 に統合された単体テストは私の目標には不十分なので、Pex & Moles を検討しました。
私が持っているのは、リモート デバイス上のビデオ ファイルを表すために使用されるコードです。デバイスへのアクセスは特定の SDK を介して処理され、その SDK 用にラッパーが作成されます。Moles を使用すると、ラッパー関数をオーバーライドして、ローカル ファイルからデータを読み取る関数に置き換えることができます。Moles と統合単体テストを使用してそれを行います。しかし、それだけでは十分ではありません。「常に動作している」デバイスをそのように模倣することしかできないため、実際には失敗することがよくあります。
PexChoose を偽のメソッドの本体に追加することを考えました。これにより、Pex はさまざまなメソッドの実行結果の可能な組み合わせのツリーを構築できるようになります。
ただし、既存のコードから Pex テストを作成しようとすると、テストからすべてのパラメーターを削除し (それらは必要ありません。すべてが内部で調整されます)、モック メソッドを追加して Pex Explorations を実行しようとすると、「パス」になります。境界を超えました」というメッセージ。非常に高い境界を設定しようとしましたが、役に立ちませんでした。これを解決するにはどうすればよいですか?
私は Moles、Pex、および単体テスト全般に非常に慣れていないため、概念的に間違っている可能性があります。前もって感謝します。
pex - 古い属性、Pex v0.94.51023.0 でスタブの生成が失敗する
obsolete 属性でマークされたメソッドとのインターフェースがあります。属性のエラーパラメータをtrueに設定すると、使用時に例外がスローされます。問題は、これによりスタブがクラス全体に対して生成されないことです。値をfalseに変更すると、スタブが期待どおりに生成されます。
エラーパラメータをtrueのままにしてスタブを生成する方法を探しています。
のさまざまな順列を試しました。
c# - 契約。pexエラーをスローする必要があります
現在、pex explorationを実行すると、クラスで作成したコードコントラクトは、pexexplorationの結果でエラーとして扱われます。コードコントラクトを使用してpex探索を実行した場合、コントラクトの失敗は期待される動作として扱われるべきだと思いました。例外の原因となるコードは次のとおりです。
試験方法:
メソッド呼び出しの失敗:
- - 説明
asp.net-mvc-3 - ヘルプ。Pex が私のプロジェクトと GAC を強制終了しました
ここで何が起こったのか本当にわかりませんが、プロジェクトで pex とほくろをいじっていたので、MVC である Web クライアントのテストを生成するために pex を取得しました。これにより、プロジェクトであらゆる種類のビルドの問題が発生したため、プロジェクトを元に戻しました (HG を使用したソース管理)。参照の欠落や参照の欠落に関連するその他のエラーを含む、同じビルドの問題がまだすべて発生しています。system.web.mvc や system.componentmodel.dataannotations などのソリューションの参照を削除し、GAC から再度追加しようとすると、GAC に表示されません。pexがこれをどのように行うことができたのか理解できません。Visual Studio のすべてのプロジェクトで、DataAnnotations、Mvc、および他のいくつかの参照で同じ問題が発生していますか? 私はそれらのどれとも何もできません。私'
VM であり、スナップショットが古くないため、ほとんどの作業を回復できると思います。また、ドロップボックスから作業しているので、すべてのソースを取り戻すことができます。これがどのように起こったのか理解できません。同じ性質のアドバイスや経験を持っている人はいません。私はペックスとほくろを本当に楽しみ始めていましたが、これは私をすぐにやめさせました.
command-line - Pex から NUnit テスト ケースを自動的に作成する
.Net ソリューション ファイルから NUnit テスト ケースを自動的に作成する必要があります。さらに、これはコマンドラインから行う必要があります。Pex はテスト ケースを自動的に作成すると聞きました。知らせる