小编jt0*_*000的帖子

将require('chromedriver).path直接传递给selenium-webdriver

tl; dr: 有没有人知道如何在不设置PATH环境变量的情况下将chromedriver的路径传递给代码中的selenium-webdriver?

我正在尝试使用带有铬的selenium-webdriver,但更愿意不在物理上安装chromedriver并操纵路径.我有以下代码:

var webdriver = require('selenium-webdriver');
var driver = new webdriver.Builder().
    withCapabilities(webdriver.Capabilities.chrome()).
    build();
Run Code Online (Sandbox Code Playgroud)

如果没有在路径中设置chromedriver,则会抛出错误:

Error: The ChromeDriver could not be found on the current PATH. Please download the latest 
version of the ChromeDriver from http://chromedriver.storage.googleapis.com/index.html and 
ensure it can be found on your PATH.
Run Code Online (Sandbox Code Playgroud)

我不想设置我的路径,所以我从npm安装了chromedriver并添加到我的package.json:

"scripts": {
    "preinstall-chromedriver": "npm install",
    "install-chromedriver": "node node_modules/chromedriver/install.js",
    "pretest_e2e": "npm run install-chromedriver",
    "test_e2e": "node release/test/rune2e.js"
},
Run Code Online (Sandbox Code Playgroud)

现在我已经安装了chromedriver并且可以获得路径require('chromedriver').path,但我无法将其传递给selenium-webdriver.谁知道?

javascript selenium node.js selenium-chromedriver

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

在ModelState.Errors中使用[JsonProperty("name")]

我们有几个模型通过JsonProperty覆盖名称,但是当我们通过ModelState获得验证错误时会出现问题.例如:

class MyModel
{
    [JsonProperty("id")]
    [Required]
    public string MyModelId {get;set;}
}

class MyModelController
{
    public IHttpActionResult Post([FromBody] MyModel model)
    {
        if (!ModelState.IsValid)
        {
            return HttpBadRequest(ModelState);
        }

        /* etc... */
    }
}
Run Code Online (Sandbox Code Playgroud)

上述帖子将返回The MyModelId field is required.不准确的错误.我们想这样说The id field is required..我们尝试使用[DataMember(Name="id")]但获得了相同的结果.

问题1:除了在每个[Required]属性上提供我们自己的错误消息之外,有没有办法让ModelState错误显示JSON属性名而不是C#属性名?

- 更新 -

我一直在玩这个并找到一个"自己动手"的方法,用于使用自定义属性名称重新创建错误消息.我真的希望有一个内置的方法来做到这一点,但这似乎做了...

https://gist.github.com/Blackbaud-JasonTremper/b64dc6ddb460afa1698daa6d075857e4

问题2:可以假设ModelState.Key与<parameterName>.<reflectedProperty>语法匹配,或者是否存在可能不正确的情况?

问题3:是否有更简单的方法来确定JSON参数名称应该是什么,而不是通过反射[DataMember][JsonProperty]属性进行搜索?

c# asp.net-web-api2

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

在使用Typescript的Mocha测试中使用Mockery有诀窍吗?

看起来通常在typescript中导入的方法会阻止模块被模拟...假设我在一个node.js项目中有以下产品代码,我想测试的是typescript:

// host.ts
import http = require('http');

export class Host {

    public start(port: number): http.Server {
        return http.createServer().listen(port);
    }
}
Run Code Online (Sandbox Code Playgroud)

我使用mockery(在pull请求#3313中为d.ts)和mocha 进行下面的单元测试:

import chai = require('chai');
import mockery = require('mockery');
import webserver = require('../hosting/host');

describe('host', (): void => {
    describe('start()', (): void => {
        before(() : void => {
            mockery.enable();
        });
        after((): void => {
            mockery.deregisterAll();
            mockery.disable();
        });

        it('should create an http server', (): void => {

            mockery.registerMock('http', {
                Server: mocks.Server,
                createServer: (app: any) : any …
Run Code Online (Sandbox Code Playgroud)

unit-testing mocha.js node.js typescript

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

在使用Octopus部署之前,将生产env数据库复制到暂存

为了更好地验证数据库脚本的部署,我想使用生产数据库的镜像预初始化我的Staging数据库,这是我的Octopus部署的第一步.我正在使用SQL Azure和DACFX.我很好奇是否有其他人试过这个......

  • 是否Start-AzureSqlDatabaseCopy正确的PS cmdlet用于此操作?
  • 这会影响我的生产环境的性能吗?
  • 还有其他选择吗?

更新

我开发了下面的脚本,似乎有效.但是,在数据库完成复制之前,我无法阻止脚本的完成.在某些时候Get-AzureSqlDatabaseCopy会抛出错误(也许Azure无法处理负载?).

Import-Module 'C:\Program Files (x86)\Microsoft SDKs\Windows Azure\PowerShell\ServiceManagement\Azure\Azure.psd1'

$serverName = "..."
$sourceDbName = "..."
$targetDbName = "..."

$testdb = Get-AzureSqlDatabase -ServerName $serverName -DatabaseName $targetDbName -ErrorAction SilentlyContinue

IF (!$testdb)
{
    Write-Host "TestDB Not Found"
}
ELSE
{
    Remove-AzureSqlDatabase -ServerName $serverName -Database $testdb -Force
}

$dbCopy = Start-AzureSqlDatabaseCopy -ServerName $serverName -DatabaseName $sourceDbName -PartnerDatabase $targetDbName

WHILE ($dbCopy)
{
    Write-Progress -Activity "Copying Database" -PercentComplete [int]$dbCopy.PercentComplete
    $dbCopy = Get-AzureSqlDatabaseCopy -ServerName $serverName -DatabaseCopy $dbCopy

    # Sleep …
Run Code Online (Sandbox Code Playgroud)

powershell continuous-integration system-testing octopus-deploy azure-sql-database

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