小编Sau*_*abh的帖子

从第二个元素开始循环 - Shell脚本

我想开始从shell脚本中的下面数组的第二个元素迭代数组.

number=${number:-(12 20 43 45 67 40)}
Run Code Online (Sandbox Code Playgroud)

你能帮我解决一下如何使用For循环从第二个元素开始迭代(在本例中为20)

for i in ${number[@]}
Run Code Online (Sandbox Code Playgroud)

提前致谢.

linux shell

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

空手道 API 测试 - 在同一功能文件中的不同场景中重用变量

空手道是否支持您可以在场景中定义变量并在同一功能文件中的其他场景中重用它的功能。我尝试做同样的事情,但出现错误。在同一特征文件中重用变量的最佳方法是什么?

Scenario: Get the request Id
    * url baseUrl
    Given path 'eam'
    When method get
    Then status 200
    And def reqId = response.teams[0]resourceRequestId

Scenario: Use the above generated Id
   * url baseUrl
   * print 'From the previous Scenario: ' + reqId
Run Code Online (Sandbox Code Playgroud)

错误:

Caused by: javax.script.ScriptException: ReferenceError: "reqId" is not defined in <eval> at line number 1
Run Code Online (Sandbox Code Playgroud)

karate

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

JQ-使用unique_by删除重复项

我试图通过以下json从以下json中删除重复项id

{
  "Result": [
    {
      "name": "validation-of-art",
      "id": "12",
      "status": "passed",
      "duration": 4740302
    },
    {
      "name": "validation-of-art",
      "id": "12",
      "status": "passed",
      "duration": 272320
    },
    {
      "name": "validation-of-art",
      "id": "13",
      "status": "passed",
      "duration": 272320
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的:

jq -r 'unique_by(.Result.name)'
Run Code Online (Sandbox Code Playgroud)

还有 jq 'unique_by(.Result[].name)'

我遇到错误- Cannot index array with string "Result" 任何帮助将不胜感激。

json unique jq

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

Java中使用$elemMatch实现Mongodb查询

我正在使用 Mongo java 驱动程序从 mongo 集合中检索数据。我有以下查询,我试图在 java 中实现:Json 是:

{
    "_id" : ObjectId("56cd284767c74d3d4dd3ec80"),
    "comments" : "Hello",
    "statusLog" : [ 
        {
            "status" : "Submitted",
            "startDate" : ISODate("2015-01-14T05:00:00.000Z"),
            "endDate" : ISODate("2016-02-29T21:24:24.740Z")
        }, 
        {
            "status" : "Active",
            "startDate" : ISODate("2016-02-29T21:24:24.740Z")
        }
    ],
    "createdDate" : ISODate("2015-01-14T05:00:00.000Z")
}
Run Code Online (Sandbox Code Playgroud)

蒙戈查询:

db.CollectionName.find({},{_id: 0, createdDate:1, "statusLog": {$elemMatch: {"status":"Submitted"}}});
Run Code Online (Sandbox Code Playgroud)

这是我用java编写的查询(mongo java driver 3.4.2):

BasicDBObject query = new BasicDBObject(new BasicDBObject("statusLog",
                new BasicDBObject("$elemMatch", new BasicDBObject("status", "Submitted"))));
Run Code Online (Sandbox Code Playgroud)

运行 java 代码会返回所有状态日志,而不是我正在查找的状态日志。

任何帮助将不胜感激。

java mongodb mongodb-query mongo-java-driver

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

空手道 API 测试 - 转义“?” 在功能文件的网址中

我正在使用来自 Karate API 框架的path关键字来连接字符串以形成一个 url。但是,我无法通过“?”。这是我在做什么:

 Background: 
    * url 'https://api.cloud.abcde.com/animal/'

 Scenario: Verify the get status
    Given path 'herbivore?id=25'
    When method get
    Then status 200
Run Code Online (Sandbox Code Playgroud)

当我运行测试时,我看到“?” 作为 %3F 传递。我试图使用 \ 来逃避它,并尝试了其他一些答案,但没有成功。我需要使用 url 编码吗?任何指示或帮助将不胜感激。谢谢

cucumber gherkin cucumber-java karate

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

Jenkins Pipeline - 在 shell 中插入变量会创建一个新行

我在 jenkins 文件中使用 Choice 参数来选择环境,如下所示:

pipeline {
     agent any
     parameters {
    choice(
        name: 'ENVIRONMENT_URL',
        choices: "https://beta1.xyz.com\nhttps://beta2.xyz.com\nhttps://beta3.xyz.com",
        description: 'interesting stuff' )
  }
Run Code Online (Sandbox Code Playgroud)

在本Stage节中,我有以下内容

 stage('execute tests') {
            steps {
                script {
                        sh """URL=${ENVIRONMENT_URL} npm run e2e:tests"""
                        sh 'echo -e "\nTest Run Completed.\n"'   
                }
             }   
            }
Run Code Online (Sandbox Code Playgroud)

但是,当我通过选择添加的选择参数来运行管道作业时,将执行以下操作(插入的选择参数会创建换行符):

+ URL=https://beta1.xyz.com
+ npm run e2e:tests
Run Code Online (Sandbox Code Playgroud)

使用变量会导致换行,这就是导致问题的原因。我尝试了不同的方法来避免换行。尝试使用变量,但这没有帮助。尝试使用不同的报价,但也没有。

我该怎么做才能避免断线?

groovy jenkins jenkins-pipeline

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

JavaScript过滤并减少对数组的连接

我试图使用过滤器映射的概念,而不是使用{for}循环遍历数组。

这是我的旧代码。我正在传递一个数组来过滤和组合匹配的字符串。

function oldFunction(data) {
    let dataDeleted = '';
    let each
    for (each of data) {
        if (each.includes('_DELETE')) {
            dataDeleted = dataDeleted + each.substring(0, each.length - 7) + '###';
        }
    }
    dataDeleted = dataDeleted;
    console.log(dataDeleted);
}

oldFunction(['meow_DELETE', 'haga', 'Neigh_DELETE']);
Run Code Online (Sandbox Code Playgroud)

输出为: 'meow###Neigh###'

现在,当我尝试使用“过滤器”和“减少”方法时,它似乎不起作用:

function newMethod(data) {

    const dataDeleted = data
        .filter(d => d.includes('_DELETE'))
        .reduce((deletedData, d) => {
            deletedData.concat(`${d}### `);
        }, '');

    console.log(dataDeleted);
    return dataDeleted;

}
Run Code Online (Sandbox Code Playgroud)

这将返回“未定义”。有指针吗?提前致谢。

javascript ecmascript-6

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