我有一个DLL项目,我经常编译为.exe
,这样我可以很容易地在其测试类。 一类包含一个Main()
方法中,当我编译成它是无用.dll
文件。 我想从每当我编译它作为一个类库项目自动排除此类。 好像我一定要第一人遇到这个问题之一,因为全能的谷歌似乎并没有对我的问题的答案:我如何做到这一点?
Answer 1:
我会认真考虑的单元测试apose不断地这样做。 即使单元测试未正确执行,你只是把它作为一个中间的调试器。 我甚至会去尽量的话说,做一个单元测试项目作为apose到一个控制台应用程序调试代码,在获得准入方面它会让你的生活变得更加简单和未来,如果你想实现某种形式的单位测试你可以。
[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);
}
}
Answer 2:
你有一对夫妇,我能想到的解决方案:
1)使用条件编译器选项。 例如,仅包括,如果它处于调试
#如果DEBUG
public void Main() {
// Do Stuff
}
#万一
2)使主法internal
,或将其移动到测试项目,你可以运行。 然后,你可以直接使用它,或者确保您的测试DLL可以看到内部的方法。
3)从移动主方法成一个完全不同的.exe引用原始DLL。 (这类似于选项2不使用测试框架)。
文章来源: Visual Studio: Exclude a class if compiling as a dll