小编cho*_*ban的帖子

为什么在使用"sbt it:test"时Play/Scala项目中的集成测试没有执行?

我有一个Play Framework 2.3项目,我想将单元测试和功能测试分开如下:

  1. 运行sbt test应运行单元测试并排除集成测试
  2. 运行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)

scala sbt playframework-2.3

12
推荐指数
2
解决办法
7454
查看次数

JUnit封闭的跑步者和共享设置

我正在尝试使用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)

Enclosed尝试在内部测试类之间共享设置时是否有特定的习惯用法?我希望它会像我找到C#示例一样简单.

java junit

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

分配失败消息以期待呼叫

我目前正在学习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)

有没有办法在测试我的应用程序时复制有用的失败消息?

mocha.js angularjs chai

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

从命令行登录到 heroku docker 注册表

我正在尝试登录到 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)

heroku docker

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

使用自动运行订阅活动数据源

我正在尝试使用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)

最初填充列表时,自动运行运行正常,但如果我将另一个元素添加到集合中,则发布方法会记录为"我注意到了这一点",但订阅者中没有任何操作.

以上的目的如下:

  • 服务器上有一个团队列表,其中包含名称和长/拉特详细信息
  • 当客户端连接时,他们会收到该团队列表,并将其绘制在地图上
  • 如果团队被添加到服务器端的列表中,则会通知每个客户端并在地图上显示新的引脚. …

meteor

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

使用awk只替换$ 4和$ 5之间的分隔符

我是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中的单行代码来做这个吗?先感谢您

awk replace sed

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

指定java字符串长度

何我指定输入的字符串在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)

java string

0
推荐指数
2
解决办法
293
查看次数

标签 统计

java ×2

angularjs ×1

awk ×1

chai ×1

docker ×1

heroku ×1

junit ×1

meteor ×1

mocha.js ×1

playframework-2.3 ×1

replace ×1

sbt ×1

scala ×1

sed ×1

string ×1