小编Yan*_*vin的帖子

如何正确实现IUserType?

我需要通过编写一个实现的新mapper类来为NHibernate创建一个自定义类型.虽然覆盖大多数方法和属性相对简单,但我理解如何正确处理以下成员会遇到一些困难:IUserType

  • object Assemble(object cached, object owner);
  • object DeepCopy(object value);
  • object Disassemble(object value);
  • object Replace(object original, object target, object owner);

我不明白他们的目的是什么; 更重要的是,如何正确实施它们.我见过的大多数示例都只返回原始输入参数.

public object DeepCopy(object value)
{
    return value;
}

public object Replace(object original, object target, object owner)
{
    return original;
}

public object Assemble(object cached, object owner)
{
    return cached;
}

public object Disassemble(object value)
{
    return value;
}
Run Code Online (Sandbox Code Playgroud)

如何在实际情况或更复杂的情况下正确实现这些方法

c# nhibernate nhibernate-mapping ncommon

23
推荐指数
2
解决办法
7017
查看次数

在Windows中为subversion编写钩子的最佳策略

Windows中Subversion编写钩子的最佳方法是什么?据我所知,只能使用可执行文件.那么最佳选择是什么?

  • 普通的批处理文件(非常有限,但对于非常简单的解
  • 专用编译的可执行应用程序(大锤要简单说一下?)
  • 其他一些混合选择(如运行Powershell脚本的批处理文件)

svn hook svn-hooks

20
推荐指数
2
解决办法
5852
查看次数

ValueError:<class'myapp.tests.SessionTestCase'>中没有这样的测试方法:runTest

我有一个测试用例:

class LoginTestCase(unittest.TestCase):
    ...
Run Code Online (Sandbox Code Playgroud)

我想在不同的测试用例中使用它:

class EditProfileTestCase(unittest.TestCase):
  def __init__(self):
    self.t = LoginTestCase()
    self.t.login()
Run Code Online (Sandbox Code Playgroud)

这引起了:

ValueError: no such test method in <class 'LoginTest: runTest`
Run Code Online (Sandbox Code Playgroud)

我查看了调用异常的unittest代码,看起来测试不应该以这种方式编写.是否有标准的方法来编写您要测试的内容,以便以后的测试可以重用它?或者有解决方法吗?

我现在添加了一个空runTest方法LoginTest作为一个可疑的解决方法.

python unit-testing

19
推荐指数
5
解决办法
2万
查看次数

如何获取源文件名和类型成员的行号?

考虑到调试数据文件可用(PDB)并使用System.Reflection或其他类似框架(如Mono.Cecil),如何以编程方式检索源文件名和类型或类型成员的行号声明.

例如,假设您已将此文件编译为程序集:

C:\ MyProject的\ Foo.cs

1:    public class Foo
2:    {
3:       public string SayHello()
4:       {
5:           return "Hello";
6:       }
7:    }
Run Code Online (Sandbox Code Playgroud)

怎么做这样的事情:

MethodInfo methodInfo = typeof(Foo).GetMethod("SayHello");
string sourceFileName = methodInfo.GetSourceFile(); // ?? Does not exist!
int sourceLineNumber = methodInfo.GetLineNumber(); // ?? Does not exist!
Run Code Online (Sandbox Code Playgroud)

sourceFileName将包含"C:\ MyProject\Foo.cs",sourceLineNumber将等于3.

更新:System.Diagnostics.StackFrame确实能够获取该信息,但仅限于当前执行调用堆栈的范围.这意味着必须首先调用该方法.我想获得相同的信息,但不调用类型成员.

c# reflection

18
推荐指数
2
解决办法
1万
查看次数

如何在muticore机器上加速python单元测试?

我正在使用python unittest来测试其他一些外部应用程序,但是需要花费太多时间来逐个运行测试.

我想知道如何通过使用多核的功能来加速这个过程.我可以调整unittest来并行执行测试吗?怎么样?

这个问题不能python GIL限制,因为事实上不是python代码需要时间,而是我执行的外部应用程序,目前通过os.system().

python performance multithreading unit-testing multicore

13
推荐指数
2
解决办法
7817
查看次数

MbUnit对阵Nunit

我读到MbUnit是关于类固醇的Nunit,但我不明白为什么.从我在这里读到的,我在这里说Nunit比MbUnit更受欢迎.其中一个主要原因是因为它具有流畅的界面.这是唯一的原因吗?

为什么我更喜欢MbUnit而不是Nunit,反之亦然?谢谢!

mbunit nunit unit-testing

12
推荐指数
2
解决办法
8325
查看次数

在PyDev + Eclipse中运行当前项目中所有单元测试的键盘快捷键是什么?

我知道Ctrl+ F9运行一个文件.

怎么运行它们?

如果没有这样的东西,如何将一个键盘快捷键绑定到它?

eclipse unit-testing pydev python-unittest

7
推荐指数
1
解决办法
4291
查看次数

如何在iPhone SDK中设置gcov进行代码覆盖率分析?

我最近开始对我为iPhone编写的应用程序进行单元测试.我有创建自己的测试的基础知识,即使它看起来有点次优.但是,我在使用gcov设置代码覆盖率分析时遇到了麻烦.

我按照这里的说明进行操作:http://www.cubiclemuses.com/cm/articles/2009/05/14/coverstory-on-the-iphone/,在其他地方重复得非常相似.我试过在他们的Mac工具箱中使用谷歌的AppleScript,以防我在Xcode中输入错误.

我已经使用Apple的iPhoneUnitTests示例作为基础项目,只需运行Google的AppleScript就可以针对CalcTests目标启用代码覆盖测试,以获得一个源代码不足的自动化示例.无论我使用什么场景,我自己的代码,Apple,手动设置正确的变量或让Google的AppleScript为我做,我得到的只是测试运行完成后调试控制台中的这些错误:

profiling:/Users:Cannot create directory
profiling:/Users/jpo/Downloads/iPhoneUnitTests/build/iPhoneUnitTests.build/Debug-iphoneos/CalcTesting.build/Objects-normal/armv6/CalcViewController.gcda:Skip
profiling:/Users:Cannot create directory
profiling:/Users/jpo/Downloads/iPhoneUnitTests/build/iPhoneUnitTests.build/Debug-iphoneos/CalcTesting.build/Objects-normal/armv6/Calculator.gcda:Skip
profiling:/Users:Cannot create directory
profiling:/Users/jpo/Downloads/iPhoneUnitTests/build/iPhoneUnitTests.build/Debug-iphoneos/CalcTesting.build/Objects-normal/armv6/CalcAppDelegate.gcda:Skip
profiling:/Users:Cannot create directory
profiling:/Users/jpo/Downloads/iPhoneUnitTests/build/iPhoneUnitTests.build/Debug-iphoneos/CalcTesting.build/Objects-normal/armv6/main.gcda:Skip
Run Code Online (Sandbox Code Playgroud)

没有创建gcda文件,因此我无需分析.任何有关这方面的帮助将不胜感激.

iphone cocoa unit-testing gcov

6
推荐指数
1
解决办法
2171
查看次数

覆盖unittest的auto_now

我已经为数据库中的事件定义了一些时间戳auto_now_add,因为信息应该与事件存储时的时间戳一起存储.

事件的描述是这样的

class NewEvent(models.Model):
    '''
    Individual event
    '''
    name = models.CharField(max_length=100)
    quantity = models.FloatField(null=True)
    timestamp = models.DateTimeField(auto_now_add=True)
Run Code Online (Sandbox Code Playgroud)

为了测试模块,我在test.py文件中的数据库中生成一些信息,这样:

    for event in EVENT_TYPES:
        time = datetime.datetime.now() - datetime.timedelta(days=1)
        for i in range(48):
            time = time.replace(hour=i / 2)
            NewEvent(name=event,
                     timestamp=time,
                     quantity=i).save()
Run Code Online (Sandbox Code Playgroud)

我必须生成具有昨天时间戳的事件(模块将汇总它们).问题是您无法覆盖时间戳.时间戳是它生成事件时的时间戳,文档非常清楚地说明了这一点.

那么,如何使用合适的时间戳生成测试数据呢?我有几个想法:

  • 也许在Model类之外以不同的方式生成数据库数据.在哪里以及如何?
  • 以某种方式定义一个不同的类或更改类以在测试期间表现不同,类似于

_

 if testing:
     timestamp = models.DateTimeField(auto_now_add=True)
 else:
     timestamp = models.DateTimeField(auto_now_add=False)
Run Code Online (Sandbox Code Playgroud)

或者也许有更简单的方法来做到这一点......任何想法?

python django unit-testing

6
推荐指数
2
解决办法
1966
查看次数

Javascript Sandbox单元测试

我正在使用QUnit,这非常棒.

我已将我的JS应用程序包含在(function () {})();沙箱中.这隐藏了许多我不想公开的代码,但我还需要测试该代码.

以下是一个如何工作的示例:

(function () {  

    var PublicAPI = window.PublicAPI = {};        
    PublicAPI.publicFunction = function (foo) {
        PrivateAPI.privateFunction(foo);
        return 'bar';
    };

    var PrivateAPI = {};
    PrivateAPI.privateFunction: function (foo) {
       // Make secret stuff that never gets returned to the public
       // Could be an AJAX call.
    }

})();
Run Code Online (Sandbox Code Playgroud)

所以在这里我可以轻松进行单元测试PublicAPI.publicFunction,但我将如何进行测试PrivateAPI.privateFunction

javascript unit-testing sandbox anonymous-function qunit

5
推荐指数
1
解决办法
1065
查看次数