小编Zie*_*elu的帖子

如何只使用angular-cli执行一个测试规范

我使用Angular-CLI(beta 20)构建了Angular2项目.

有没有办法只针对一个选定的spec文件运行测试?

我曾经有一个基于Angular2快速启动的项目,我可以手动将规范添加到jasmine文件中.但是我不知道如何在业力测试之外设置它,或者如何使用Angular-CLI构建将业力测试限制为特定文件.

jasmine angular-cli angular

89
推荐指数
9
解决办法
7万
查看次数

Jaxb忽略了解组时的命名空间

我使用Jaxb2和Spring.我正在尝试解组由我的两个客户发送的一些XML.

到目前为止,我只需要处理一个发送了一些像这样的xml的客户:

<foo xmlns="com.acme">
  <bar>[...]</bar>
<foo>
Run Code Online (Sandbox Code Playgroud)

绑定到这样的POJO:

@XmlType(name = "", propOrder = {"bar"})
@XmlRootElement(name = "Foo")
public class Foo {

  @XmlElement(name = "Bar")
  private String bar;

  [...]
}
Run Code Online (Sandbox Code Playgroud)

我发现之前的开发人员在unmarshaller中硬编码了命名空间以使其工作.

现在,第二个客户发送相同的XML但更改名称空间!

<foo xmlns="com.xyz">
  <bar>[...]</bar>
<foo>
Run Code Online (Sandbox Code Playgroud)

显然,unmarshaller没有解组,因为它期望一些{com.acme}foo而不是{com.xyz}foo.不幸的是,要求客户更改XML不是一种选择.

我尝试了什么:

1)application-context.xml,我搜索了一个配置,它允许我忽略命名空间但找不到:

<bean id="marshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
  <property name="packagesToScan">
    <list>
      <value>com.mycompany.mypkg</value>
    </list>
  </property>
  <property name="marshallerProperties">
    <map>
      <entry key="???"><value type="java.lang.Boolean">false</value></entry>
    </map>
  </property>
</bean>
Run Code Online (Sandbox Code Playgroud)

似乎唯一可用的选项是Jaxb2Marshaller的Javadoc中列出的选项:

/**
 * Set the JAXB {@code Marshaller} properties. These properties will be set on the
 * underlying …
Run Code Online (Sandbox Code Playgroud)

java spring jaxb

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

在tick/flushMicroservice之后,fakeAsync是否保证承诺完成

主要问题是如何测试Promise完成后执行的预期操作,例如测试组件是否在收到某些远程内容后正确更新其状态.

在下面的规范中,dealWithIt()模拟为响应完成的promise而执行的逻辑(它更新变量并触发"另一个异步事件").

it('Promises fulfilled by flushMicrotasks',fakeAsync((): void => {

    let x = 1;
    let y = 2;

    let dealWithIt = function(p:Promise<number>) {
        p.then( v => {
            x = v;
            Promise.resolve(v).then( v=> {y = v+1; });
        });
    };

    let p = Promise.resolve(y);

    dealWithIt(p);

    flushMicrotasks();
    //valid if promise handling completed
    expect(x).toBe(2);
    expect(y).toBe(3);


}));

it('Promises fulfilled by tick',fakeAsync((): void => {
    let x = 1;
    let y = 2;

    let dealWithIt = function(p:Promise<number>) {
        p.then( v => {
            x = v; …
Run Code Online (Sandbox Code Playgroud)

angular

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

如何从笔记本访问当前用户/auth_state

我正在使用 JupyterHub 和自定义验证器。它使用访问令牌设置 auth_state,然后可以将其复制到pre_spawn_start方法内的环境中,如示例所示:

class MyAuthenticator(Authenticator):
    @gen.coroutine
    def authenticate(self, handler, data=None):
        username = yield identify_user(handler, data)
        upstream_token = yield token_for_user(username)
        return {
            'name': username,
            'auth_state': {
                'upstream_token': upstream_token,
            },
        }

@gen.coroutine
def pre_spawn_start(self, user, spawner):
    """Pass upstream_token to spawner via environment variable"""
    auth_state = yield user.get_auth_state()
    if not auth_state:
        # auth_state not enabled
        return
    spawner.environment['UPSTREAM_TOKEN'] = auth_state['upstream_token']
Run Code Online (Sandbox Code Playgroud)

但是,每个用户只会发生一次。如果我注销并再次登录,则pre_spawn_start不会再次调用,并且旧令牌仍然存在于环境变量中。

是否可以user.get_auth_state()直接从笔记本进行访问,以便我可以确保使用当前令牌,而不是之前设置并存储在环境中?

否则,是否可以强制生成器在注销时停止,以便后续登录将触发pre_spawn_start

jupyter-notebook jupyterhub

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

如何禁用rails中的activerecord缓存日志记录

我正在尝试禁用生产中的缓存记录.已成功使SQL停止记录查询,但没有运气缓存日志条目.生产日志中的示例行:

CACHE (0.0ms) SELECT `merchants`.* FROM `merchants` WHERE `merchants`.`id` = 1 LIMIT 1
Run Code Online (Sandbox Code Playgroud)

我不想禁用所有日志记录,因为我希望logger.debug语句显示在生产日志中.使用rails 3.2.1与Mysql和Apache.有什么建议?

logging activerecord caching ruby-on-rails

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

Hibernate:是否有可能找出实际使用了哪些急切加载的集合?

我怀疑我们的一个应用程序中的一些性能问题是由于休眠过度急切加载某些关联而引起的,这可以通过切换到延迟加载来解决。不幸的是,跟踪这些关联的实际使用方式和时间非常困难,更不用说“平均”使用它们的频率了。是否有一些工具(休眠日志记录选项?)可以帮助决定哪些急切加载的关联应该更好地延迟加载和/或切换到其他获取策略

例如,我可以想象一个工具,它可以记录每个休眠会话的日志,显示每个类加载了多少个对象,以及应用程序实际访问了其中的多少个对象,甚至生成一些有关这些的统计信息。当然,最终只有负载测试才能决定哪个更好,但这可能会给您一些尝试的想法。或者也许还有更好的工具。

java persistence hibernate jpa

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

是否有PHP的linter使所有异常像Java一样显式?

是否有一个PHP的lint /静态分析器,当没有记录或捕获异常时会发出警告?考虑这个例子:

// ERROR: InvalidArgumentException must be documented or caught inside method.
function divide($a, $b)
{
    if (0 == $b) {
        throw new InvalidArgumentException();
    }
    return $a / $b;
}
Run Code Online (Sandbox Code Playgroud)

修理:

/**
 * @throws InvalidArgumentException if $b is zero.
 */
function divide($a, $b)
Run Code Online (Sandbox Code Playgroud)

因为它必须被记录,类似于Java throws在方法原型上的显式.那应该是可能的:

// ERROR: InvalidArgumentException must be documented or caught inside method.
function calc()
{
    print divide(6, 2);
}
Run Code Online (Sandbox Code Playgroud)

PHP有一些明显的警告,但在大多数情况下,应该更早地检测到这些缺陷.有没有这样做的麻烦?

php exception

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