请考虑以下Dockerfile:
FROM phusion/baseimage
VOLUME ["/data"]
RUN touch /data/HELLO
RUN ls -ls /data
Run Code Online (Sandbox Code Playgroud)
问题:"/ data"目录不包含"HELLO"文件.此外,任何其他尝试写入卷目录(通过echo,mv,cp,...)都是不成功的 - 该目录始终为空.没有显示错误消息.
关于这个问题,我在文档或stackoverflow上找不到任何内容.
这是众所周知的还是新的?
docker version 收益:
Client version: 1.2.0
Client API version: 1.14
Go version (client): go1.3.1
Git commit (client): fa7b24f
OS/Arch (client): linux/amd64
Server version: 1.2.0
Server API version: 1.14
Go version (server): go1.3.1
Git commit (server): fa7b24f
Run Code Online (Sandbox Code Playgroud) 这个问题是这个Q&A的一个分支:使用System.console()的Test Groovy类
问题:
Spock框架错误地使用varargs检查模拟方法的参数.
重现步骤:
1)创建groovy项目
2)创建一个界面:
interface IConsole {
String readLine(String fmt, Object ... args)
}
Run Code Online (Sandbox Code Playgroud)
3)创建spock测试:
class TestInputMethods extends Specification {
def 'test console input'() {
setup:
def consoleMock = GroovyMock(IConsole)
1 * consoleMock.readLine(_) >> 'validResponse'
when:
// here we get exception "wrong number of arguments":
def testResult = consoleMock.readLine('testPrompt')
then:
testResult == 'validResponse'
}
}
Run Code Online (Sandbox Code Playgroud)
4)尝试运行测试
效果:测试失败,异常"参数数量错误".
解决方法:
对readLine的调用替换为:
def testResult = consoleMock.readLine('testPrompt', [] as Object[])
Run Code Online (Sandbox Code Playgroud)
然后测试成功完成.
题:
有没有更好的方法来"解释"spock,模拟函数的最后一个参数是vararg,因此,它可以省略?