.exe
クラスを簡単にテストできるように、よくコンパイルする DLL プロジェクトがあります。1 つのクラスにはMain()
、ファイルとしてコンパイルすると役に立たないメソッドが含まれてい.dll
ます。クラス ライブラリとしてコンパイルするときはいつでも、このクラスをプロジェクトから自動的に除外したいと考えています。全能の Google は私の質問に対する答えを持っていないようなので、私はこの問題に最初に遭遇した人の 1 人に違いないようです。
質問する
1068 次
2 に答える
1
私はこれを常に行うことを避けて、単体テストを真剣に検討します。単体テストが適切に実装されておらず、中間デバッガーとして使用している場合でも。コードをデバッグするためのコンソールアプリケーションに合わせて単体テストプロジェクトを行うとさえ言えます。あなたができるテスト。
[TestMethod]
public class YourClassNameTests
{
public T YourObject;
[TestInitialize()]
public void Initializer()
{
YourObject = new T();
}
[TestMethod()]
public void YourMethodTest()
{
//Arrange
YourObject.ReliantProperty = 1;
//Act
var objResult = YourObject.YourMethod();
//Assert
Assert.IsTrue(objResult == 1);
}
}
于 2013-04-22T11:59:51.223 に答える
0
私が考えることができるいくつかの解決策があります:
1) 条件付きコンパイラ オプションを使用します。たとえば、デバッグ中の場合にのみ含める
#if デバッグ
public void Main() {
// Do Stuff
}
#endif
2) Main メソッドinternal
を作成するか、実行可能なテスト プロジェクトに移動します。次に、それを直接使用するか、テスト DLL が内部メソッドを認識できるようにします。
3) Main メソッドを、元の DLL を参照するまったく別の .exe に移動します。(これは、テスト フレームワークを使用しないオプション 2 に似ています)。
于 2013-04-22T11:59:58.883 に答える