小编VoY*_*VoY的帖子

我可以为mercurial命令模板添加自定义颜色吗?

我想使用如下所示的自定义模板hg log:

hg log --template '{node|short} {desc} [{date|age} by {author}]\'n --color=always
Run Code Online (Sandbox Code Playgroud)

这在默认的终端颜色不是很可读,所以例如我想使节点红色和desc绿色.我怎样才能做到这一点?在git中我可以像这样定义这种格式:

git log --pretty=format:'%Cred%h%Creset %Cgreen%s%Creset [%ar by %an]'
Run Code Online (Sandbox Code Playgroud)

在mercurial中类似的事情是否可能?

formatting mercurial

9
推荐指数
2
解决办法
2668
查看次数

像fakeweb for Python这样的库

我真的很喜欢Ruby中的fakeweb在测试时用来伪造http请求的方式.是否有类似的库或Python的替代品?

python testing fakeweb

8
推荐指数
1
解决办法
887
查看次数

在Java中是否存在类似于pyparsing的库?

我需要在Java中快速构建一个非常简化版本的类似html的标记语言的解析器.在python中,我会使用pyparsing库来执行此操作.Java有类似的东西吗?请不要建议已经在那里进行html解析的库,我的应用程序是一个学校作业,它将演示走过一个对象树并使用访问者模式序列化为文本,所以我不会在这里考虑现实世界的术语.基本上我在这里需要的只是标签,属性和文本节点.

python java parsing pyparsing

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

有没有办法在未定义的测试中使新鲜测试失败?

默认情况下,当我运行一个包含未定义的给定/ when/then子句的新鲜场景时,该测试只是标记为未定义.没有给出关于实际上未定义的内容的进一步有用的消息.有没有办法改变这种行为,以获得更多信息究竟是什么未定义?

python django bdd nose nosetests

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

如何在Jenkins中构建最新的git flow release分支?

我正在尝试在Jenkins中建立持续集成以进行git流式开发.我以为我会创建三个工作来构建RPM包:用于master,develop和最新的发布分支.

问题在于最新的发布分支,因为我不确定是否可以设置构建以便Jenkins轮询我的git repo,并且只有在最新版本/*分支中发生更改时才进行构建.人们更常见的是克隆工作和核心分支名称,还是我打算做什么?

git continuous-integration git-flow jenkins

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

如何隔离测试纯函数调用树?

在我们的JavaScript开发团队中,我们采用了redux/react风格编写纯函数代码.但是,我们似乎无法对我们的代码进行单元测试.请考虑以下示例:

function foo(data) {
    return process({
        value: extractBar(data.prop1),
        otherValue: extractBaz(data.prop2.someOtherProp)
    });
}
Run Code Online (Sandbox Code Playgroud)

此函数调用取决于对其的调用process,extractBar并且extractBaz每个调用都可以调用其他函数.总之,他们可能需要data构造一个非平凡的模拟 参数来进行测试.

我们是否应该接受制作这样一个模拟对象的必要性,并且实际上在测试中这样做,我们很快发现我们有难以阅读和维护的测试用例.此外,它很可能会导致遍地测试同样的事情,作为单元测试process,extractBar并且extractBaz可能应该也可以写.通过foo接口测试由这些函数实现的每个可能的边缘情况是不实用的.


我们有一些解决方案,但并不真正喜欢任何解决方案,因为它们似乎都不是我们之前看到过的模式.

解决方案1:

function foo(data, deps = defaultDeps) {
    return deps.process({
        value: deps.extractBar(data.prop1),
        otherValue: deps.extractBaz(data.prop2.someOtherProp)
    });
}
Run Code Online (Sandbox Code Playgroud)

解决方案2:

function foo(
    data, 
    processImpl = process, 
    extractBarImpl = extractBar, 
    extractBazImpl = extractBaz
) {
    return process({
        value: extractBar(data.prop1),
        otherValue: extractBaz(data.prop2.someOtherProp)
    });
}
Run Code Online (Sandbox Code Playgroud)

foo当依赖函数调用的数量增加时,解决方案2 非常快速地污染方法签名.

解决方案3:

只需接受这foo是一个复杂的复合操作并将其作为一个整体进行测试的事实.所有缺点都适用.


请提出其他可能性.我想这是一个功能编程社区必须以某种方式解决的问题.

javascript unit-testing functional-programming pure-function

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

哪一个在react/redux应用程序中保存服务实例?

假设我在Redux中编写应用程序,我的任务是使用第三方库添加日志记录.其API如下:

function createLogger(token) {
    // the logger has internal state!
    let logCount = 0;

    return {
        log(payload) {
            logCount++;            // modify local state

            fetch('/someapi', {    // ship payload to some API
                method: 'POST',
                body: payload
            });
        }
    };
}
Run Code Online (Sandbox Code Playgroud)

然后我会使用这样的库:

let logger = createLogger('xyz');
logger.log('foobar');
Run Code Online (Sandbox Code Playgroud)

我绝对想在应用程序初始化期间只创建一次logger实例.但问题是:我在哪里存储记录器实例

第一个是将它放在商店的某个地方.但这是个好主意吗?正如我在代码中演示的那样,logger对象是有状态的,它在闭包中存储了一个计数器.我没有像使用不可变对象那样获得新实例.我们知道,只应通过纯缩减器函数修改状态.

其他可能性是在redux中间件闭包中的某处创建实例,或者只创建一个全局变量,这在可测试性方面显然是邪恶的.

是否有最佳实践(我认为)相当常见的情况?

javascript testability reactjs redux

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

如何使用Webpack和Sass进行spriting?

我正在将我的构建系统从具有自定义任务的Grunt移动到Webpack.至于JavaScript模块,它工作得很好,但我不太确定如何使用我的Sass样式表.

我依赖于我的AMD模块中的Sass文件,Webpack可以从中读取并生成bundle.css.但我最好让我的构建管道使用spritesmith生成精灵,然后将图像复制到构建目录并使用Sass mixins生成正确的CSS规则.

我在SO和谷歌上都研究了很多,但没有找到任何人做类似的情况.我应该只使用网络包吗?或者我应该有单独的Grunt任务观看图像,生成精灵然后运行Webpack吗?

javascript sass css-sprites gruntjs webpack

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

如何从Firebug中的控制台过滤AJAX请求?

我正在尝试调试一个应用程序,这对于ajax请求非常重(至少每秒一次).Firebug在其控制台中显示每个请求,这使得很难看到我自己的console.log打印.是否可以暂时过滤出现在控制台中的ajax请求?

javascript ajax firebug

4
推荐指数
1
解决办法
1020
查看次数

在JavaScript中使用===进行字符串比较是否有意义?

虽然很清楚如何使用===的如数字运算符是有用的(0,null并且undefined全部为falsy值,这可能会导致混乱),我不知道是否有使用效益===字符串比较.

我的一些队友使用这个操作符进行所有比较,但它真的有意义吗?是否至少有一些轻微的性能影响?

javascript

4
推荐指数
1
解决办法
136
查看次数