我需要将我的一个测试用例置于"挂起"状态.
我想给它一些消息,它可以在运行测试时显示在输出上,就像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)
提前致谢!
我最近安装了一个新的JDK(1.7u9),我得到了一些非常奇怪VerifyError的东西.在一个帖子中,我发现如果我使用-XX:-UseSplitVerifier魔术开关进行编译,它可以帮助我.
我想要做的是在Jenkins中全局设置这个Java选项,但是没有找到它的任何配置.有人可以帮我解决这个问题吗?
我能够提出的最接近的事情是通过Maven设置参数,但是我必须为每个项目配置执行它 - 我想避免这种情况.
提前致谢.
是否有任何工具可以使用该testthat软件包评估R脚本的代码覆盖率?除了在RJournal文章的未来工作部分提到主题外,我没有发现任何谷歌.
是否可以设置自定义工具以在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) 我团队最近的辩论让我很奇怪.基本主题是我们在功能/集成测试中应该涵盖多少以及它们应该包含哪些内容(当然,它们并不相同,但是这个示例在无关紧要的情况下是虚拟的).
假设您有一个"控制器"类,如下所示:
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
我有这样的输入:"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
我有一个像这样的代码段:
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],这是完全可以理解的.
任何人都有任何提示如何做到这一点?提前致谢!
假设我想显示序列的结果:
plot(runif(10,0,1), type="o")
Run Code Online (Sandbox Code Playgroud)
以某种方式显示所有具有连接线的元素,但绘制pch仅为每个第二,第三或第N个元素分配的相应图标(圆圈/菱形等)?
我应该创建两个序列,一个带有过滤元素并将其显示为不同的序列line()?是不是有一点优雅的方式来做到这一点?
提前致谢!
我正在使用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)
这样我就可以从我的代码中调用包私有成员.
我想知道在这种情况下是否有任何复杂的方法或共同的模式(比如某些带有暗示的魔法?).
谢谢!
在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++中使用下划线),但我想避免这种情况.
这有什么替代方案吗?
提前致谢!
这是一个假设性的问题,但是假设我想+在一个范围内改变(或任何其他算术运算符)的行为Int,就像这样(我知道这是疯狂的事情,是我试图避免的事情)一般来说,但我觉得很有趣):
object MySillyStuff extends App {
def +(a: Int, b: Int) = a*b;
println(1+2)
}
Run Code Online (Sandbox Code Playgroud)
这样可能吗,或者我只能通过新类型的隐式转换来重载运算符?(即,我必须显式创建1为该新类型的成员,并2对该特定类型使用隐式转换)。
我想知道创建一个List对象最好的方法是什么.
我能想到的是将用于转换Range为List:
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 ×7
java ×3
testing ×3
r ×2
arrays ×1
constructor ×1
git ×1
git-config ×1
git-diff ×1
git-merge ×1
jenkins ×1
maven ×1
plot ×1
scala-2.9 ×1
specs2 ×1
unit-testing ×1
visibility ×1