是否可以在dotnet核心控制台应用程序中嵌入测试代码(基于MSTEST,NUNIT或XUNIT之一)?
根据下面的教程,似乎要求测试代码始终是一个独立的项目,而不是实际的项目。
我理解在实际项目中嵌入测试代码的一些缺点,但我真的不想将许多内部类转为公共,或者在任何地方添加InternalTo属性,只是为了使它们可以被测试访问代码。
https://docs.microsoft.com/en-us/dotnet/core/testing/unit-testing-with-mstest
答案 0 :(得分:3)
我总是为单元测试创建新项目,但您可以在控制台应用程序中进行单元测试。
仅出于演示目的,我已将所有类添加到一个文件中。
如果您不想进行生产测试,可以使用#if DEBUG和#endif包围测试类。
这样,它将在调试模式下编译,并在发布模式下被忽略。
希望这有帮助。
答案 1 :(得分:0)
您还可以使用NUnitLite创建可执行的测试程序,该程序运行您的测试。链接到nunit框架和相应版本的nunitlite,并按照以下说明编写Main:https://github.com/nunit/nunit/blob/master/src/NUnitFramework/nunitlite/AutoRun.cs#L34