小编rle*_*ndi的帖子

规格2:忽略带有消息的规范?

我需要将我的一个测试用例置于"挂起"状态.

我想给它一些消息,它可以在运行测试时显示在输出上,就像JUnit一样@Ignore("Pending: issue #1234 needs to be fixed").

与Specs2相同吗?

class MySpec extends mutable.Specification {
  args(skipAll = true) // Can I include a message here in the output somehow?

  "cool MyClass feature" should {
    "which is broken unfortunately" in {
      failure
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

提前致谢!

testing scala specs2

26
推荐指数
1
解决办法
7682
查看次数

如何在Jenkins全局设置每个作业的JVM选项?

我最近安装了一个新的JDK(1.7u9),我得到了一些非常奇怪VerifyError的东西.在一个帖子中,我发现如果我使用-XX:-UseSplitVerifier魔术开关进行编译,它可以帮助我.

我想要做的是在Jenkins中全局设置这个Java选项,但是没有找到它的任何配置.有人可以帮我解决这个问题吗?

我能够提出的最接近的事情是通过Maven设置参数,但是我必须为每个项目配置执行它 - 我想避免这种情况.

提前致谢.

java configuration jvm-arguments maven jenkins

16
推荐指数
3
解决办法
4万
查看次数

测试包的R代码覆盖率

是否有任何工具可以使用该testthat软件包评估R脚本的代码覆盖率?除了在RJournal文章未来工作部分提到主题外,我没有发现任何谷歌.

testing code-coverage r

11
推荐指数
2
解决办法
2702
查看次数

如何在Git中为特定的文件扩展名设置difftool/mergetool?

是否可以设置自定义工具以在Git中合并具有特定扩展名的文件?

感谢您的任何指示!

更新

我无法找到比定义自定义difftool更好的解决方案,并且像@jarodeells建议的那样手动调用它:

[diff]
    tool = mydiff
[difftool "mydiff"]
    cmd="script.sh \"$LOCAL\" \"$REMOTE\""
Run Code Online (Sandbox Code Playgroud)

然后明确地调用它:

$ git difftool -t mydiff someFileWith.ext
Run Code Online (Sandbox Code Playgroud)

git version-control git-diff git-merge git-config

8
推荐指数
2
解决办法
2047
查看次数

集成测试,但多少?

我团队最近的辩论让我很奇怪.基本主题是我们在功能/集成测试中应该涵盖多少以及它们应该包含哪些内容(当然,它们并不相同,但是这个示例在无关紧要的情况下是虚拟的).

假设您有一个"控制器"类,如下所示:

public class SomeController {
    @Autowired Validator val;
    @Autowired DataAccess da;
    @Autowired SomeTransformer tr;
    @Autowired Calculator calc;

    public boolean doCheck(Input input) {
        if (val.validate(input)) {
             return false;
        }

        List<Stuff> stuffs = da.loadStuffs(input);
        if (stuffs.isEmpty()) {
             return false;
        }

        BusinessStuff businessStuff = tr.transform(stuffs);
        if (null == businessStuff) {
            return false;
        }

       return calc.check(businessStuff);
    }
}
Run Code Online (Sandbox Code Playgroud)

我们需要进行大量的单元测试(例如,如果验证失败,或者DB中没有数据,......),这是不可能的.

我们的主要问题以及我们不能同意的是集成测试应涵盖多少:-)

我方面的目标是减少集成测试(测试金字塔).我从这里得到的只是一条快乐 - 不快乐的道路,执行从最后一行返回,只是为了看看我把这些东西放在一起它不会爆炸.

问题是,为什么测试结果是错误的并不容易,这让一些人感到不安(例如,如果我们只检查返回值,则隐藏测试为绿色因为某人更改了验证并返回false).当然,是的,我们可以涵盖所有案件,但这将是一个沉重的矫枉过正的imho.

对于这类问题,有没有人有一个很好的经验法则?还是推荐?读?谈论?博客帖子?关于这个主题的一切?

非常感谢提前!

PS:讽刺这个丑陋的例子,但很难将特定的代码部分翻译成一个例子.是的,人们可以争论抛出异常/使用不同的返回类型/等.但是由于外部依赖性,我们的手或多或少受到约束.

java testing integration-testing automated-tests unit-testing

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

Scala中的多个赋值而不使用Array?

我有这样的输入:"1 2 3 4 5".

我想做的是创建一组新变量,让a它们成为序列中的第一个,b第二个,xs其余作为序列(显然我可以在3个不同的行中完成,但我想使用多个任务).

一些搜索帮助我找到了正确忽略的序列模式,我可以使用它:

val Array(a, b, xs @ _*) = "1 2 3 4 5".split(" ")
Run Code Online (Sandbox Code Playgroud)

我不明白的是,如果我用元组尝试它,为什么它不起作用?我收到一个错误:

val (a, b, xs @ _*) = "1 2 3 4 5".split(" ")
Run Code Online (Sandbox Code Playgroud)

错误消息是:

<console>:1: error: illegal start of simple pattern
Run Code Online (Sandbox Code Playgroud)

有没有使用多任务的替代方案Array

我几天前刚开始玩Scala,所以请耐心等待:-)在此先感谢!

arrays functional-programming scala pattern-matching variable-assignment

4
推荐指数
3
解决办法
3998
查看次数

是否可以在收集期间打印值而无需修改返回类型?

我有一个像这样的代码段:

def test() : Seq[Int] = 
  List("A", "B", "C") collect {
    case "A" => 1
    case "B" => 2
    //case _ => println(_)
  }
Run Code Online (Sandbox Code Playgroud)

现在我想在输出上打印特定值(仅用于调试),而不向结果集合添加任何元素.如果我取消注释注释行,Scala会将表达式的值推断为Seq[Any],这是完全可以理解的.

任何人都有任何提示如何做到这一点?提前致谢!

scala scala-2.9 scala-collections

3
推荐指数
2
解决办法
164
查看次数

如何只显示R中图上的每个第N个元素?

假设我想显示序列的结果:

plot(runif(10,0,1), type="o")
Run Code Online (Sandbox Code Playgroud)

以某种方式显示所有具有连接线的元素,绘制pch仅为每个第二,第三或第N个元素分配的相应图标(圆圈/菱形等)?

我应该创建两个序列,一个带有过滤元素并将其显示为不同的序列line()?是不是有一点优雅的方式来做到这一点?

提前致谢!

plot r

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

Scala魔法使私人/受保护的成员可见?

我正在使用API​​,其中的特性如下:

package pkg

trait Trait { 
  private[pkg] def f = ...
  private[pkg] val content = ...
}
Run Code Online (Sandbox Code Playgroud)

我想在我的代码中使用来自Jar文件的API 访问变量content和函数f(因此我无法修改原始代码以删除private定义).

我能够提出的第一个解决方案是在同一个包中创建一个新的类,这有助于我访问私有/受保护的成员函数,如下所示:

package pkg

trait PkgBridge {
  def f = Trait.f
  def getContent(t : Trait) = t.content;
}
Run Code Online (Sandbox Code Playgroud)

这样我就可以从我的代码中调用包私有成员.

我想知道在这种情况下是否有任何复杂的方法或共同的模式(比如某些带有暗示的魔法?).

谢谢!

visibility scala

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

Scala-way初始化成员?

在Java中,我们可以在一个方法中扩展当前作用域,以便在变量this被形式参数隐藏时引用变量.一个典型的例子是我们在构造函数中做的事情:

class A {
    int i;
    A(int i) { this.i = i; }
}
Run Code Online (Sandbox Code Playgroud)

现在,Scala中有类似的技巧吗?例如,我有这样的定义:

class A(i: Int) {
   val i = i; // ?
}
Run Code Online (Sandbox Code Playgroud)

一个简单的解决方案是将其中一个参数重命名为其他参数(比如在C++中使用下划线),但我想避免这种情况.

这有什么替代方案吗?

提前致谢!

java constructor scala

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

是否可以覆盖 Scala 中的内置运算符?

这是一个假设性的问题,但是假设我想+在一个范围内改变(或任何其他算术运算符)的行为Int,就像这样(我知道这是疯狂的事情,是我试图避免的事情)一般来说,但我觉得很有趣):

object MySillyStuff extends App {
  def +(a: Int, b: Int) = a*b;

  println(1+2)
}
Run Code Online (Sandbox Code Playgroud)

这样可能吗,或者我只能通过新类型的隐式转换来重载运算符?(即,我必须显式创建1为该新类型的成员,并2对该特定类型使用隐式转换)。

scala operator-overloading

0
推荐指数
1
解决办法
745
查看次数

很好地创建一个对象列表

我想知道创建一个List对象最好的方法是什么.

我能想到的是将用于转换RangeList:

val objs: List[String] =
  for (i <- 1.to(100).toList)
    yield new String("" + i)
Run Code Online (Sandbox Code Playgroud)

或转换整个结果toList:

val objs: List[String] =
  (for (i <- 1 to 100 )
    yield new String("" + i)).toList
Run Code Online (Sandbox Code Playgroud)

但它们对我来说都不够光滑.有没有更简单的方法来做到这一点?变量必须是类型的,List因为它在我正在使用的代码中的其他地方使用.提前致谢!

scala scala-collections

0
推荐指数
1
解决办法
839
查看次数