小编Ilj*_*nen的帖子

Concourse CI - 如何运行功能测试?

我们正处于从Jenkins迁移到Concourse CI的过程中,到目前为止一切都很顺利.但现在我有问题,我不知道如何解决.我想从社区得到任何建议.

我想要做的是可以使用Selenium运行集成或功能(Web)测试的工作.我们几乎没有问题:

  1. 要运行Web测试,我需要设置数据库(以及可选的搜索引擎,代理等...)代理,尽可能地模拟生产环境.理想情况下,它应该由docker-compose设置.
  2. 此数据库服务应与我的测试并行运行
  3. 此数据库服务不应返回任何错误或成功,因为它只启动数据库,而不是其他任何内容
  4. 在数据库准备好之前,不应启动我的Web测试
  5. 所有Web测试完成后,应停止此数据库服务

正如你所看到的,这是非常重要的任务.当然,我可以创建一个包含我需要的所有内容的超级容器,但这是一个糟糕的解决方案.另一种选择是为此创建一个shell脚本,但这不够灵活.

是否有任何示例可以为此问题实施该做法或良好做法?

谢谢!

continuous-integration webtest functional-testing docker-compose concourse

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

GWT AutoBean:注释@PropertyName不再起作用

我使用AutoBean将数据编码/解码为JSON,这在以前的GWT版本中都可以.在我看来,AutoBean是处理JSON的非常好用且方便的工具.自GWT ver.2.4.0以来,这个功能已经改变,我花了一些时间在我的代码中恢复它.但只有一个部分仍未固定 - 注释@PropertyName.此注释用于向属性添加"别名".它节省了大量的网络流量.现在它引发了一个例外.代码示例如下:

import com.google.web.bindery.autobean.shared.AutoBean.PropertyName;

public interface IPersonInfo {

    // Name
    @PropertyName("n")
    public String getName();
    public void setName(String name);

    // Surname
    @PropertyName("s")
    public String getSurname();
    public void setSurname(String surname);

    // other properties...
}
Run Code Online (Sandbox Code Playgroud)

然后我尝试以这种方式将其解码为JSON:

AutoBean<IPersonInfo> user = factory.user();

// clone the userDto (it's a new way to clone an object in ver 2.4.0
// instad of deprecated clone() method)
Splittable data = AutoBeanCodex.encode(user);
IPersonInfo userDto = AutoBeanCodex.decode(factory, IPersonInfo.class, data).as();

userDto.setName("Name");
userDto.setSurname("Surname");
//... other properties
Run Code Online (Sandbox Code Playgroud)

这段代码在遗留代码中完美运行.但现在(在GWT 2.4.0中)我得到一个例外:

java.lang.IllegalArgumentException: …
Run Code Online (Sandbox Code Playgroud)

java gwt annotations autobean

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