【问题标题】:Deleting a large number of tests from a test suite从测试套件中删除大量测试
【发布时间】:2014-11-27 17:40:43
【问题描述】:

我有一个包含大约 8000 个测试的列表,我想从中删除某个测试子集(其中多达 432 个),这些测试现在已通过且不再需要。

测试条目的格式如下

  [img.hidden: setAttribute() to "" followed by IDL get]
    expected: FAIL

  [img.hidden: setAttribute() to " foo " followed by IDL get]
    expected: FAIL

我想要删除的测试列表以下列格式提供给我

img.hidden: setAttribute() to "" followed by IDL get
img.hidden: setAttribute() to " foo " followed by IDL get

什么是搜索和删除所有这些测试条目的快速方法?

编辑: 按要求举例。条目:

  [img.hidden: IDL set to undefined followed by hasAttribute()]
    expected: FAIL

  [img.hidden: IDL set to undefined followed by IDL get]
    expected: FAIL

  [img.hidden: IDL set to null followed by hasAttribute()]
    expected: FAIL

  [img.hidden: IDL set to null followed by IDL get]
    expected: FAIL

  [img.hidden: IDL set to 7 followed by IDL get]
    expected: FAIL

删除列表:

img.hidden: IDL set to undefined followed by IDL get
img.hidden: IDL set to null followed by IDL get
img.hidden: IDL set to 7 followed by IDL get

预期输出:

  [img.hidden: IDL set to undefined followed by hasAttribute()]
    expected: FAIL

  [img.hidden: IDL set to null followed by hasAttribute()]
    expected: FAIL

【问题讨论】:

    标签: shell replace scripting editing


    【解决方案1】:

    你可以使用sed作为

    while read pattern
    do 
    sed -i "/$pattern/, +1 d" inputFile
    done < test
    

    测试

    $ cat input
    [img.hidden: IDL set to undefined followed by hasAttribute()]
        expected: FAIL
    
    [img.hidden: IDL set to undefined followed by IDL get]
        expected: FAIL
    
    [img.hidden: IDL set to null followed by hasAttribute()]
        expected: FAIL
    
    [img.hidden: IDL set to null followed by IDL get]
        expected: FAIL
    
    [img.hidden: IDL set to 7 followed by IDL get]
        expected: FAIL
    
    $ cat test
    img.hidden: IDL set to undefined followed by IDL get
    img.hidden: IDL set to null followed by IDL get
    img.hidden: IDL set to 7 followed by IDL get
    
    $ while read pattern; do sed -i "/$pattern/, +1 d" input ; done < test
    
    $ cat input
    [img.hidden: IDL set to undefined followed by hasAttribute()]
        expected: FAIL
    
    
    [img.hidden: IDL set to null followed by hasAttribute()]
        expected: FAIL
    

    【讨论】:

    • 这似乎不起作用,奇怪的是,它把我的输入文件变成了 8000 个空白行
    • 在问题中添加了一个示例。
    • 原来将模式从 "/$pattern/, +1 d" 更改为 "/$pattern/,+1d" 可以解决问题。想知道为什么...?也应该是+2d,以删除每次测试后的空白行。
    • @aakashjain 空间不能有所作为。两种都试过了,效果很好。 +2 将删除 2 行。对于测试用例后没有空行的情况,+1 可能更安全
    • @aakashjain 不管怎样很高兴听到它有帮助:)
    猜你喜欢
    • 2011-05-10
    • 2019-12-10
    • 2021-09-07
    • 1970-01-01
    • 2020-12-13
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多