C#在控制台应用程序中嵌入测试代码

时间:2018-02-17 02:58:52

标签: c# unit-testing nunit mstest xunit

是否可以在dotnet核心控制台应用程序中嵌入测试代码(基于MSTEST,NUNIT或XUNIT之一)?

根据下面的教程,似乎要求测试代码始终是一个独立的项目,而不是实际的项目。

我理解在实际项目中嵌入测试代码的一些缺点,但我真的不想将许多内部类转为公共,或者在任何地方添加InternalTo属性,只是为了使它们可以被测试访问代码。

https://docs.microsoft.com/en-us/dotnet/core/testing/unit-testing-with-mstest

2 个答案:

答案 0 :(得分:3)

我总是为单元测试创​​建新项目,但您可以在控制台应用程序中进行单元测试。

仅出于演示目的,我已将所有类添加到一个文件中。

Example:

如果您不想进行生产测试,可以使用#if DEBUG和#endif包围测试类。

这样,它将在调试模式下编译,并在发布模式下被忽略。

希望这有帮助。

答案 1 :(得分:0)

您还可以使用NUnitLite创建可执行的测试程序,该程序运行您的测试。链接到nunit框架和相应版本的nunitlite,并按照以下说明编写Main:https://github.com/nunit/nunit/blob/master/src/NUnitFramework/nunitlite/AutoRun.cs#L34