fixture notesetup和setup的区别

NUnit中的TestFixtureSetup 和 TestFixtureTearDown属性 - .NET - 第七城市
第七城市,电脑技术学院,与您一起学习的伙伴,您身边的教程中心
您现在的位置:&&>>&&>>&&>>&&>>&正文
NUnit中的TestFixtureSetup 和 TestFixtureTearDown属性
a)TestFixtureSetup 和 TestFixtureTearDown&&&&&&&&&& 在所有测试开始前(TestFixtureSetup)或结束后(TestFixtureTearDown)运行一&&&& 次。记住他只运行一次,而不论有多少个Test函数。因此一个TestFixture只能有一个TestFixtureSetup或TestFixtureTearDown。&&&&&&& 示例:测试用例[TestFixture]public class TestFixtureSetUpAndTearDownTest{[TestFixtureSetUp]public void RunBeforeAllTests(){Console.WriteLine( "TestFixtureSetUp" );}[TestFixtureTearDown]public void RunAfterAllTests(){Console.WriteLine( "TestFixtureTearDown" );}[SetUp]public void RunBeforeEachTest(){Console.WriteLine( "SetUp" );}[TearDown]public void RunAfterEachTest(){Console.WriteLine( "TearDown" );}[Test]public void Test1(){Console.WriteLine( "Test1" );} 被测试类[Test]public void Test2(){Console.WriteLine( "Test2" );}}运行结果:TestFixtureSetUpSetUpTest2TearDownTestFixtureTearDown
上一篇文章:
下一篇文章:1048人阅读
pytest单元测试框架(4)
与python自带的unitest测试框架中的setup、teardown类似,pytest提供了fixture函数用以在测试执行前和执行后进行必要的准备和清理工作。但是fixture函数对setup和teardown进行了很大的改进。
fixture函数可以使用在测试函数中,测试类中,测试文件中以及整个测试工程中。fixture支持模块化,fixture可以相互嵌套fixture支持参数化fixture支持unittest类型的setup和teardown
1、fixture作为测试函数的参数
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:101339次
积分:2541
积分:2541
排名:第10343名
原创:151篇
转载:39篇
有对自动化测试、持续集成感兴趣的朋友,可以和我交流。
独立博客:
(5)(7)(1)(9)(14)(19)(14)(5)(13)(6)(1)(3)(4)(3)(30)(10)(16)(5)(1)(3)(10)(13)(1)当前位置: &
& 查看源码
testfixture.cs
testfixture.cs:源码内容
using&System.C
using&System.R
namespace&NUnit.Core
///&&summary&
///&A&TestSuite&that&wraps&a&class&marked&with&TestFixtureAttribute
///&&/summary&
public&class&TestFixture&:&TestSuite
private&const&string&FIXTURE_SETUP_FAILED&=&&Fixture&setup&failed&;
#region&Constructors
public&TestFixture(&object&fixture&)&:&base(&fixture,&0&)
Initialize();
public&TestFixture(&object&fixture,&int&assemblyKey&)&:&base(&fixture,&assemblyKey&)
Initialize();
public&TestFixture(&Type&fixtureType&)&:&base(&fixtureType,&0&)
Initialize();
public&TestFixture(&Type&fixtureType,&int&assemblyKey&)&:&base(&fixtureType,&assemblyKey&)
Initialize();
private&void&Initialize()
Reflect.CheckFixtureType(&fixtureType&);
IList&categories&=&Reflect.GetCategories(&fixtureType&);
CategoryManager.Add(&categories&);
this.Categories&=&
this.fixtureSetUp&=&Reflect.GetFixtureSetUpMethod(&fixtureType&);
this.fixtureTearDown&=&Reflect.GetFixtureTearDownMethod(&fixtureType&);
this.IsExplicit&=&Reflect.HasExplicitAttribute(&fixtureType&);
if&(&Reflect.HasIgnoreAttribute(&fixtureType&)&)
this.ShouldRun&=&
this.IgnoreReason&=&Reflect.GetIgnoreReason(&fixtureType&);
this.Description&=&Reflect.GetDescription(&fixtureType&);
MethodInfo&[]&methods&=&fixtureType.GetMethods(BindingFlags.Public|BindingFlags.Instance|BindingFlags.Static|BindingFlags.NonPublic);
foreach(MethodInfo&method&in&methods)
TestCase&testCase&=&TestCaseBuilder.Make(&fixtureType,&method&);
if(testCase&!=&null)
testCase.AssemblyKey&=&this.AssemblyK
this.Add(&testCase&);
if(&this.CountTestCases()&==&0&)
this.ShouldRun&=&
this.IgnoreReason&=&this.Name&+&&&does&not&have&any&tests&;
catch(&InvalidTestFixtureException&exception&)
this.ShouldRun&=&
this.IgnoreReason&=&exception.M
#endregion
#region&Static&Methods
public&static&bool&IsValidType(&Type&type&)
return&!type.IsAbstract&&&&Reflect.HasTestFixtureAttribute(&type&);
#endregion
public&override&void&DoSetUp(&TestResult&suiteResult&)
if&(&Fixture&==&null&)
Fixture&=&Reflect.Construct(&fixtureType&);
if&(this.fixtureSetUp&!=&null)
Reflect.InvokeMethod(fixtureSetUp,&Fixture);
IsSetUp&=&
catch&(Exception&ex)&
//&Error&in&TestFixtureSetUp&causes&the&suite&and
//&all&contained&suites&to&be&ignored.
//&TODO:&Change&this&to&be&a&failure?
NunitException&nex&=&ex&as&NunitE
if&(nex&!=&null)
ex&=&nex.InnerE
if&(&ex&is&NUnit.Framework.IgnoreException&)
this.ShouldRun&=&
suiteResult.NotRun(ex.Message);
suiteResult.StackTrace&=&ex.StackT
this.IgnoreReason&=&ex.M
suiteResult.Failure(&ex.Message,&ex.StackTrace,&true&);
suiteResult.AssertCount&=&NUnit.Framework.Assert.C
public&override&void&DoTearDown(&TestResult&suiteResult&)
if&(this.ShouldRun)&
IsSetUp&=&
if&(this.fixtureTearDown&!=&null)
Reflect.InvokeMethod(fixtureTearDown,&Fixture);
catch&(Exception&ex)&
//&Error&in&TestFixtureTearDown&causes&the
//&suite&to&be&marked&as&a&failure,&even&if
//&all&the&contained&tests&passed.
NunitException&nex&=&ex&as&NunitE
if&(nex&!=&null)
ex&=&nex.InnerE
suiteResult.Failure(&ex.Message,&ex.StackTrace);
suiteResult.AssertCount&+=&NUnit.Framework.Assert.C
if&(this.IgnoreReason&==&FIXTURE_SETUP_FAILED)&
this.ShouldRun&=&
this.IgnoreReason&=&
CopyRight & 2008- All Rights reserved. 苏ICP备
号 京公网安备:951169人阅读
Python(7)
1 Fixture 概念
Fixture是测试中的概念:
Fixture 指的是测试中依赖的数据和条件等等Python的 unittest 库提供了对 fixture的一些支持每个TestCase 应该在setUp中, 自己负责资源的创建, 例如
class MyTestCase(unittest.TestCase):
def my_fixture_setup(self):
def setUp(self):
super(MyTestCase, self).setUp()
self.my_fixture_setup()
每个TestCase 应该新建一个函数, 负责资源的销毁. 并把这个新的函数加入到TestCase的cleanup列表当中
class MyTestCase(unittest.TestCase):
def my_fixture_cleanup(self):
print(&++++ my_cleanup&)
def setUp(self):
super(MyTestCase, self).setUp()
self.addCleanup(self.my_fixture_cleanup)
以下是完整的代码
from __future__ import print_function
import unittest
class MyTestCase(unittest.TestCase):
def my_fixture_setup(self):
def my_fixture_cleanup(self):
print(&++++ my_cleanup&)
def setUp(self):
super(MyTestCase, self).setUp()
self.my_fixture_setup()
self.addCleanup(self.my_fixture_cleanup)
def tearDown(self):
super(MyTestCase, self).tearDown()
print(&++++ tearDown&)
def my_cleanup(self):
print(&++++ my_cleanup&)
def test_case_1(self):
print(&++++ test case 1&)
2 Python 中的 Fixtures 包
Fixtures(复数)是Python中的一个包, 提供了一些工具包来快速创建/销毁 fixture
Test Case需要派生于&testtools.TestCase 类如果需要自定义Fixtures, 需要派生于&fixtures.Fixture类, 并覆写父类的setUp/cleanUp方法
一个自定义Fixtures类的例子如下
from __future__ import print_function
import fixtures
import testtools
class MyFixture(fixtures.Fixture):
def setUp(self):
super(MyFixture,self).setUp()
self.frobnozzle = 42
print(&++++ MyFixture.setup()&)
def cleanUp(self):
super(MyFixture,self).cleanUp()
print(&++++ MyFixture.cleanup()&)
class MyTestCase(testtools.TestCase):
def setUp(self):
super(MyTestCase, self).setUp()
self.my_fixture = self.useFixture(MyFixture())
print(&++++ setUp&)
def tearDown(self):
super(MyTestCase, self).tearDown()
print(&++++ tearDown&)
def test_case_1(self):
self.assertEqual(42, self.my_fixture.frobnozzle)
print(&++++ test case 1&)
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:43727次
排名:千里之外
原创:21篇NHibernate 用NUint 开展单元测试出错 - .NET Framework当前位置:& &&&NHibernate 用NUint 开展单元测试出错NHibernate 用NUint 开展单元测试出错&&网友分享于:&&浏览:31次NHibernate 用NUint 进行单元测试出错出错,没有找到测试类MyNHibernateFixture
Failure:&TestFixtureSetUp&failed&in&MyNHibernateFixture
请高手帮忙解决!谢谢------解决方案--------------------按Ctrl+F搜索下MyNHibernateFixture是否定义。------解决方案--------------------我引用的是&&NHibernate-3.3.0.GA-bin
开发工具vs2010,开发工具.net&3.5
using&MyNHibernate.DAL;
using&MyNHibernate.DomainModel.E
using&NUnit.F
namespace&MyNHibernate.TestDemo
&&&&[TestFixture]
&&&&public&class&MyNHibernateFixture
&&&&&&&&NHibernateHelper&_
&&&&&&&&SessionManage&_getS
&&&&&&&&ISession&_
&&&&&&&&[TestFixtureSetUp]
&&&&&&&&public&void&TestFixtureSetup()
&&&&&&&&&&&&_getSession&=&new&SessionManage();
&&&&&&&&&&&&//helper&=&new&NHibernateHelper(_session.GetISession());
&&&&&&&&[SetUp]
&&&&&&&&public&void&Setup()
&&&&&&&&&&&&_isession&=&_getSession.GetISession();
&&&&&&&&&&&&_helper&=&new&NHibernateHelper(_isession);
&&&&&&&&[Test]
&&&&&&&&public&object&GetCustomerByIdTest()
&&&&&&&&&&&&var&tempCutomer&=&new&Customer&{&Firstname&=&"沈",&Lastname&=&"容泉"&};
&&&&&&&&&&&&object&obj&=&_helper.AddCustomer(tempCutomer);
&&&&&&&&&&&&return&
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有}

我要回帖

更多关于 pip setuptools 区别 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信