基本上我想告诉MSTest在启动一系列测试运行之前执行一些代码,基本上我想做的就是坚持使用一些代码Main()
.
我想这样做的原因是我想在集成测试运行期间使用log4net进行一些日志记录.我不能只使用log4net.Config.XmlConfigurator
assembly属性,因为它在我已经调用过的测试程序集中读取它LoggerManager
.文档建议在代码入口点显式配置log4net - 但我的测试中的位置是什么?
我需要能够在TestDriven.NET和MSTest跑步者中运行我的测试.
Mar*_*ann 140
FWIW,您可以使用AssemblyInitialize属性在程序集中的所有单元测试执行之前运行代码:
[TestClass]
public class SetupAssemblyInitializer
{
[AssemblyInitialize]
public static void AssemblyInit(TestContext context)
{
// Initalization code goes here
}
}
Run Code Online (Sandbox Code Playgroud)
如果你有多个单元测试组件,我不知道任何包含多个组件的东西.
据我所知,这与你可以获得的主要等价物一样接近.
请注意,AssemblyInitialize
-decorated方法必须位于TestClass
-decorated类中,该类至少包含一个TestMethod
-decorated方法,否则将不会执行!
Kon*_*man 50
完成后,这些是MSTest的"run code before"选项:
[AssemblyInitialize]
到每个装配运行一次代码,在装配任何测试运行之前.[ClassInitialize]
在定义方法的类中进行任何测试之前,每个类运行一次代码.[TestInitialize]
在定义方法的类中的每个测试之前运行代码.Mae*_*024 12
我在MS Test标题中看到了这一点.
// Use ClassInitialize to run code before running the first test in the class
//[ClassInitialize()]
//public static void MyClassInitialize(TestContext testContext) { }
Run Code Online (Sandbox Code Playgroud)
这将在一个类中的测试之前运行.
听起来你想在所有测试之前运行一些东西.
测试运行配置中还有设置脚本选项.
归档时间: |
|
查看次数: |
33137 次 |
最近记录: |