我有一个Play Framework 2.3项目,我想将单元测试和功能测试分开如下:
sbt test
应运行单元测试并排除集成测试sbt it:test
应该只运行集成测试Scala文档建议使用project/Build.scala
,但我想使用build.sbt
和的组合project/Build.scala
,所以我的配置看起来像这样(我也尝试将所有配置放入Build.scala
):
build.sbt
....
libraryDependencies ++= Seq(
"com.typesafe.play" %% "play-json" % "2.2.3",
"org.scalatest" %% "scalatest" % "2.1.5" % "it, test",
"org.mockito" % "mockito-all" % "1.9.5" % "it, test"
)
def funTestFilter(name: String): Boolean = ((name endsWith "ItTest") || (name endsWith "IntegrationTest"))
def unitTestFilter(name: String): Boolean = ((name endsWith "Test") && !funTestFilter(name))
testOptions in IntegrationTest := Seq(Tests.Filter(funTestFilter))
testOptions in Test := Seq(Tests.Filter(unitTestFilter)) …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用JUnit运行程序Enclosed
,以便尝试改进我的一些测试的组织.目前我正在努力研究如何在内部类之间共享一些设置.
尝试第一个:
@RunWith(Enclosed.class)
public class EnclosedTest {
@Before
public void printSomething() {
System.out.println("Helllooo Meggan");
}
public static class FirstTest {
@Test
public void assertThatSomethingIsTrue() {
assertThat(true, is(true));
}
}
public static class SecondTest {
@Test
public void assertThatSomethingIsFalse() {
assertThat(false, is(false));
}
}
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,没有人向Meggan问好.如果我更新内部类以扩展外部类,那么我得到以下内容:
java.lang.Exception: class 'org.scratch.EnclosedTest$FirstTest' (possibly indirectly) contains itself as a SuiteClass
at org.junit.runners.model.InitializationError.<init>(InitializationError.java:32)
Run Code Online (Sandbox Code Playgroud)
我目前正在学习AngularJS,其中一部分涉及创建测试.目前我正在尝试研究如何为失败的测试创建更有用的错误消息.例如,如果我在Java-land并编写JUnit测试,我会做类似于此的事情:
assertTrue( "The foo value should be true at this point", bar.isFoo() );
Run Code Online (Sandbox Code Playgroud)
这样,如果检查失败,我将在日志中获得第一个参数.
对于mocha中的布尔检查(使用chai和sinon,如果有所不同)我有......
expect(broadcastSpy.calledWith('order.add')).to.be.true;
Run Code Online (Sandbox Code Playgroud)
如果失败,那么我得到以下内容:
expected false to be true
AssertionError: expected false to be true
Run Code Online (Sandbox Code Playgroud)
有没有办法在测试我的应用程序时复制有用的失败消息?
我正在尝试登录到 registory.heroku.com 以便我可以推送我自己的图像,但是我遇到了身份验证问题。如果我遵循docs的指导,我会得到这个:
> docker login --username=_ --password=(heroku auth:token) registry.heroku.com 2077ms ? Thu 29 Oct 09:15:57 2020
› Warning: token will expire 05/07/2021
› Use heroku authorizations:create to generate a long-term token
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Login Succeeded
Run Code Online (Sandbox Code Playgroud)
所以它要我使用长期令牌。如果我使用 生成一个heroku authorization:create
,并使用生成的令牌作为密码,则登录将被拒绝:
) docker login --username=_ --password="this is a token" registry.heroku.com 1140ms ? Thu 29 Oct 09:21:23 2020
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Error …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Meteor编写一个webapp,我肯定没有想到订阅已发布的数据集.整个应用程序都在github上(链接到后代的最新提交),但我将尝试总结如下.
我有一个名为teams的集合,可供客户端和服务器使用:
Teams = new Meteor.Collection( "teams" );
Run Code Online (Sandbox Code Playgroud)
在服务器上,我想发布所有团队的列表:
Meteor.publish( "allteams", function() { ...
Run Code Online (Sandbox Code Playgroud)
有一个非常简单的游标构成了这个发布的列表:
var handle = Teams.find( {} ).observeChanges({
added: function( id ) {
console.log( "New team added" );
if ( !initializing ) {
console.log( "Telling subscribers it's all change" );
self.added( "teams", id, {} );
self.ready();
}
}
});
Run Code Online (Sandbox Code Playgroud)
客户端订阅该源,并且在添加元素时,客户端将向地图添加引脚:
Meteor.autorun( function() {
Meteor.subscribe( "allteams", function() {
console.log( "All teams has been updated" );
// Do more stuff
}
};
Run Code Online (Sandbox Code Playgroud)
最初填充列表时,自动运行运行正常,但如果我将另一个元素添加到集合中,则发布方法会记录为"我注意到了这一点",但订阅者中没有任何操作.
以上的目的如下:
我是awk语言的新手,我对它拥有的所有力量感到惊讶.(我今天发现了这个),因为我有这种格式的文件:
test1;test2;test3;test4;test5;test6;test7
Run Code Online (Sandbox Code Playgroud)
我需要在一个新文件中输出它并得到结果:
test1;test2;test3;test4 test5;test6;test7
Run Code Online (Sandbox Code Playgroud)
基本上加''在4美元到5美元之间.我知道有很多问题,但我无法做我想做的事.
我正在测试我在这里找到的代码:
for (i=1;i<=3;i++)
printf "%s;", $i
n = split($0,tmp,/ +/)
for (i=6;i>=8;i++)
printf ";%s", tmp[n-i]
print ""
}
Run Code Online (Sandbox Code Playgroud)
但我得到的输出如下:
test1;test2;test3;test4;test5;test6;;;
Run Code Online (Sandbox Code Playgroud)
你能告诉我我做错了什么吗?还有另外一种简单的方法,比如awk中的单行代码来做这个吗?先感谢您
何我指定输入的字符串在30到60个字符之间?我尝试了以下但我在(if)行得到了非法的表达式错误启动.
public class Manipulation {
public static void main(String[] args) {
// let the user enter a string
OOPHelper.print("Please enter a string: ");
String s = OOPHelper.readKeyboardString();
if (s.length >=30) && (s.length <=60){
OOPHelper.println(s);
}
else
Run Code Online (Sandbox Code Playgroud)