小编jos*_*erk的帖子

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

无法测试Symfony2控制台命令

作为学习Symfony2的一部分,我正在尝试编写一个非常简单的控制台命令,它只运行phpcs(PHP Code Sniffer).

这是执行函数,它在扩展ContainerAwareCommand的类中:

protected function execute(InputInterface $input, OutputInterface $output)
{
    $output->writeln('<info>Generating PHP Code Sniffer report...</info>');
    exec('phpcs ./src > ./app/logs/phpcs.log');

    if ($input->getOption('noprompt') == null) {
        $dialog = $this->getHelperSet()->get('dialog');
        if ($dialog->askConfirmation($output, '<question>Open report in TextMate? (y/n)?</question>', false)) {
            exec('mate ./app/logs/phpcs.log');
        }
    }

    $output->writeln('<info>...done</info>');
}
Run Code Online (Sandbox Code Playgroud)

我可以通过运行来执行控制台命令

app/console mynamespace:ci:phpcs
Run Code Online (Sandbox Code Playgroud)

它完美无缺.输出文件按预期生成.

我正在尝试使用以下函数(它是PHPUnit_Framework_TestCase的一部分)来测试mynamespace:ci:phpcs命令:

public function testExecute()
{
    $kernel = new \AppKernel("test", true);
    $kernel->boot();

    $application = new Application($kernel);
    $application->add(new PhpCodeSnifferCommand());

    $command = $application->find('mynamespace:ci:phpcs');
    $commandTester = new CommandTester($command);
    $commandTester->execute(array('command' => $command->getName()));

    // ... Test if output file …
Run Code Online (Sandbox Code Playgroud)

php phpunit codesniffer symfony

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

Symfony2:无法在功能测试中模拟HTTP身份验证

我正在尝试使用symfony.com上描述的以下技术:http://symfony.com/doc/current/cookbook/testing/http_authentication.html ,试图在功能上测试需要用户登录的控制器.

到目前为止,我的登录表单正常工作,我可以登录,Symfony2调试Web工具栏显示我的用户已经过身份验证.另外,我已经为登录过程本身编写了一个功能测试,这个过程.所以我现在通过两个场景,我的登录工作正常.

我遇到的唯一问题是,当尝试模拟HTTP身份验证时,就像其他控制器一样:

$client = static::createClient(array(), array(
    'PHP_AUTH_USER' => 'tester',
    'PHP_AUTH_PW'   => 'testpass',
));
Run Code Online (Sandbox Code Playgroud)

通过检查$ client,我可以看到我被重定向到我的登录页面,我尝试这样的时刻:

$crawler = $client->request('GET', '/');
Run Code Online (Sandbox Code Playgroud)

我知道带有密码testpass的用户测试程序存在于数据库中,因为我也可以通过浏览器使用该帐户登录.

我可以使用安全控制器测试中的以下代码:

    $client = $this->createClient(array(), array('HTTP_HOST' => 'myapp.test'));

    // Visit user login page and login
    $crawler = $client->request('GET', '/login');
    $form = $crawler->selectButton('Login')->form();
    $crawler = $client->submit($form, array('_username' => 'tester', '_password' => 'testpass'));

    // ... carry on with remainder of tests
Run Code Online (Sandbox Code Playgroud)

但我不太确定这是否是最有效的方法.

我有点惊讶于什么是错的.有任何想法吗?是否对Symfony2应用了更改,这意味着此过程已更改,并且HTTP身份验证模拟现在不起作用或工作方式不同?

php symfony

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

Capistrano上传失败,错误的参数错误?

我在跑

upload('bin/rvm_install.sh','~/rvm_install.sh')
Run Code Online (Sandbox Code Playgroud)

在我的Capistrano部署脚本中.它正在吐出以下错误:

capistrano-2.14.2/lib/capistrano/configuration/namespaces.rb:110:in `block in define_task': wrong number of arguments (2 for 0) (ArgumentError)
Run Code Online (Sandbox Code Playgroud)

为什么会这样?

capistrano

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

如何在Mac OS X系统菜单上更改我的Qt应用程序名称?

我的Qt应用程序在Mac OS X菜单上显示的名称相当不友好.该名称看起来像my_funky_app.

如何将其更改为更可爱的内容?

在此输入图像描述

qt

4
推荐指数
2
解决办法
1846
查看次数

如何将http:// localhost:9000配置为http:/mylocal.loc

我正在使用Play框架,它默认使用http:// localhost:9000.我也试图与Twitter的东西,它需要使用身份验证的回调URL,但Twitter不会接受的http://本地主机:9000作为回调URL.

如何配置我的localhost映射到http://mylocal.loc(类似于Apache vhost),而不是http:// localhost:9000

twitter localhost playframework

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

Makefile vpath%.o没有找到obj文件

我正在使用以下vpath来尝试查找我的$(OBJ)文件:

vpath %.o ./lib/obj
Run Code Online (Sandbox Code Playgroud)

我的目标设置如下:

# Link target
link:
    @echo "\nLinking files"
    $(CC) $(LINK_FLAGS) -o main.elf $(OBJS)
Run Code Online (Sandbox Code Playgroud)

在查看输出时,我得到(对于所有*.o文件):

...error: misc.o: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我的项目结构如下:

.
??? Makefile
??? inc
?   ??? main.h
??? lib
?   ??? inc
?   ?   ??? cmsis
?   ?   ?   ??? arm_common_tables.h
?   ?   ?   ??? ...
?   ?   ??? peripherals
?   ?   ?   ??? misc.h
?   ?   ?   ??? ...
?   ?   ??? stm32f4xx
?   ?       ??? stm32f4xx.h
?   ?       ??? ...
? …
Run Code Online (Sandbox Code Playgroud)

gcc makefile

3
推荐指数
2
解决办法
6377
查看次数

为什么IntelliJ说:包安全不存在?

我已经设置了我的Play Framework 1.2.1项目,可以使用以下Google网上论坛帖子中的说明在IntelliJ中运行:

http://groups.google.com/group/play-framework/msg/54cfe212cbae218e

但是,按照http://www.playframework.org/documentation/1.2.2/guide8上的教程,我从IDE收到以下错误:

/Library/WebServer/Documents/devschool.play/app/controllers/Security.java
package Secure does not exist
/Library/WebServer/Documents/devschool.play/app/controllers/Application.java
cannot find symbol class Secure
Run Code Online (Sandbox Code Playgroud)

当我使用> play run运行应用程序时,一切正常,但我更喜欢从IDE运行它.请注意,在添加安全模块之前,项目已从IDE完美运行.

有没有办法来解决这个问题?我有预感它与外部源有关,但不是Java专家,我不完全确定如何做到这一点.

有人可以帮忙吗?

java playframework

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

除了转换之外,<< C++运算符做了什么?

我在Qt示例中看到了一个包含一些<<运算符的C++代码段.我知道有点转移,但显然这些做了别的事情:

在此链接中:http://qt-project.org/doc/qt-4.8/itemviews-simpletreemodel-treemodel-cpp.html有一些代码如下所示:

void TreeModel::setupModelData(const QStringList &lines, TreeItem *parent)
{
    QList<TreeItem*> parents;
    QList<int> indentations;
    parents << parent;
    indentations << 0;
    // ...
Run Code Online (Sandbox Code Playgroud)

运算符在最后两行中做了什么:parent << parentindentations << 0

我用Google搜索,但继续登陆谈论转移运营商的网页.

这是否与特定的作业形式有关?

c++ operators

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

Binding an element to a BehaviorSubject in an Angular service

I have a small shared Angular service which looks as follows:

import {Injectable} from '@angular/core';
import {BehaviorSubject, Observable} from 'rxjs/Rx';

@Injectable()
export class SidebarService {
    private _isOpen: BehaviorSubject<boolean> = new BehaviorSubject(false);

    constructor() {
        this._isOpen.subscribe(val => {
            console.log(`isOpen: ${val}`);
        });
    }

    public get isOpen() {
        return this._isOpen.asObservable();
    }

    toggle() {
        this._isOpen.next(!this._isOpen.getValue());
    }
}
Run Code Online (Sandbox Code Playgroud)

我想将该.isOpen属性绑定到视图中的一个元素。我目前正在使用以下代码段尝试在视图中进行绑定:

<p>Sidebar State: {{sidebarService?.isOpen | async}}</p>
Run Code Online (Sandbox Code Playgroud)

该属性最初是绑定的,但不响应后续更改。我想要的是Sidebar State:在 SidebarService 中调用 sidebar toggle() 方法时更新。

有任何想法吗?

observable rxjs typescript angular

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