1

.exeクラスを簡単にテストできるように、よくコンパイルする DLL プロジェクトがあります。1 つのクラスにはMain()、ファイルとしてコンパイルすると役に立たないメソッドが含まれてい.dllます。クラス ライブラリとしてコンパイルするときはいつでも、このクラスをプロジェクトから自動的に除外したいと考えています。全能の Google は私の質問に対する答えを持っていないようなので、私はこの問題に最初に遭遇した人の 1 人に違いないようです。

4

2 に答える 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 に答える