小编Bif*_*fen的帖子

我正在尝试编写 bash 脚本来更新 package.json 依赖项版本

这是我的 package.json 文件

{
    "name": "project-1",
    "version": "1.0.0",
    "description": "TestCafe project",
    "main": "index.js",
    "scripts": {
        "ci:build": "npm ci",
        "test": "testcafe",
        "precise-commits": "precise-commits"
    },
    "repository": {
        "type": "git",
        "url": "http://github.com/dev/test/testcafe-test"
    },
    "author": "Tom",
    "license": "ISC",
    "devDependencies": {
        "precise-commits": "^1.0.2",
        "prettier": "^1.16.4",
        "random-words": "^1.1.0",
        "testcafe": "^1.8.0"
    },
    "dependencies": {
        "page-objects": "1.6.169"
    }
}
Run Code Online (Sandbox Code Playgroud)

我需要将页面对象版本从 1.6.169 更新到 1.6.170,当我们更改页面对象版本时,这是我编写的 bash 文件

#!/bin/bash
PROJECT=${1?Error: No test project directory passed}
NEW_VERSION=${2?Error: Pass new version}
echo "Updating page object version for ${PROJECT} project"

cd ~/git/master/test/${PROJECT}
CURRENT_VERSION=$(node -p …
Run Code Online (Sandbox Code Playgroud)

bash shell automation json

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

如何在emacs中删除^ M.

如何删除^MEmacs 中的字符?

使用dos2unix filename或不起作用unix2dos filename.

这是我使用命令时出现的,cat -A filename因为通常我看不到^M字符.

请用简单的词语解释......详细说明......

cat -A ABC.sh
#!/bin/csh -f^M$
^M$
^M$
set input = `ls -1 *.py`^M$
echo $input^M$
Run Code Online (Sandbox Code Playgroud)

emacs

7
推荐指数
2
解决办法
3097
查看次数

函数调用运算符的C++模板

我尝试使用模板进行函数调用操作符重载,如下面的程序:

#include <stdio.h>

struct Apple
{
   template <typename tn> tn value ();
   template <typename tn> tn operator () ();
};

template <> int Apple::value ()
{
   return 10;
}

template <> int Apple::operator () ()
{
   return 10;
}

int main()
{
   Apple apple;
   printf("Value : %d\n", apple<int>());
   printf("Value : %d\n", apple.value<int>());   
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

当第二次打印中的值函数调用未显示任何错误时,第一次打印中的函数调用操作符显示expected primary-expression错误.我不知道我做错了什么.任何人都可以提前帮助我知道这个问题.

c++ templates operator-overloading

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

C++在CMake项目中使用GCOV/LCOV

我正在使用类似于以下结构的C++项目:

---  /src
    |--comms
    |--utils
    |--interfaces
    …
    CMakeList.txt
--- /test
    |---test1/
              |--main.cpp
              |--CMakelists.txt

--CMakeLists.txt
Run Code Online (Sandbox Code Playgroud)

我确实需要控制测试的覆盖范围,为此我用这种方式使用GCOV和LCOV:

  1. 在所有CMakeLists.txt中启用coverage标志,以生成.gcno文件.

    SET(CMAKE_CXX_FLAGS "-g -O0 -Wall -fprofile-arcs -ftest-coverage")
    SET(CMAKE_C_FLAGS "-g -O0 -Wall -W -fprofile-arcs -ftest-coverage")
    SET(CMAKE_EXE_LINKER_FLAGS "-fprofile-arcs -ftest-coverage")
    
    Run Code Online (Sandbox Code Playgroud)
  2. 运行测试,生成相应的.gcda文件.

    此时,文件gcno和gcda与相应的.o文件位于同一目录中.我无法移动这些文件,因为如果我这样做,报告覆盖率生成就不起作用了.

  3. 从该文件的目录.gcno.gcda位于我做到以下几点:

    lcov –c –d . –o name.info      
    
    Run Code Online (Sandbox Code Playgroud)
  4. 使用以下方法生成HTML报告:

    genhtml  name.info.
    
    Run Code Online (Sandbox Code Playgroud)

当我编译项目时,我有重复的.gcno文件,因为在编译测试时,他们需要重新编译它们的依赖项(comms,utils,...),因为我没有为这些依赖项生成库.如果我不使用库,我认为没有办法避免这种情况.

但是,当我尝试index.html为全局项目生成(覆盖率报告)时,它不起作用.

我用我的创建项目相同的文件夹结构,并复制每一个shell脚本.gcno,并.gcda到相应的目录中.我执行命令lcovgenhtml,尽管如此,index.html 包括所有项目的覆盖范围.

我将不胜感激任何帮助.

cmake gcov lcov

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

如何正确地将命令行参数传递给 CLion 中的 C 程序?

我需要有人概述如何将命令行参数传递给 CLion。到目前为止我发现的对我不起作用。具体来说,我需要知道如何从命令行将多个参数传递给程序。

c gcc jetbrains-ide clion

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

为什么有必要在函数定义中包含返回类型,即使它在声明中指定了?

当您在单独的cpp文件中定义函数时,如果编译器知道某个方法不能使具有相同签名的另一个方法(仅因返回类型不同)重载另一个方法,为什么需要返回类型来指示您要定义哪个特定函数?是不是foo :: bar(params)足以指定这个?

头文件

class foo{
public:
void bar();
};
Run Code Online (Sandbox Code Playgroud)

源文件

foo::bar() //equivalent to function declaration? throws error
{...}
Run Code Online (Sandbox Code Playgroud)

谢谢

c++

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

如何清理sync.map?

我无法访问Range循环方法内的地图。我只希望在sync.map https://play.golang.org/p/515_MFqSvCm中应用法线贴图的等效方法

package main

import (
    "sync"
)

type list struct {
    code string
    fruit
}

type fruit struct {
    name     string
    quantity int
}

func main() {
    lists := []list{list{"asd", fruit{"Apple", 5}}, list{"ajsnd", fruit{"Apple", 10}}, list{"ajsdbh", fruit{"Peach", 15}}}
    map1 := make(map[string]fruit)
    var map2 sync.Map
    for _, e := range lists {
        map1[e.code] = e.fruit
        map2.Store(e.code, e.fruit)
    }

    //erase map
    for k, _ := range map1 {
        delete(map1, k)
    }

    //can´t pass map as argument,so I can´t delete it´s …
Run Code Online (Sandbox Code Playgroud)

go

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

使用用户名和密码验证的Git服务器

我想设置一个Git服务器,让我的开发人员使用用户名和密码登录,以便提交和更改项目.我还需要管理开发人员对项目的访问权限(我想我应该使用gitolite).

我怎样才能做到这一点?

我习惯Subversion这很容易,因为你可以为每个开发人员设置用户名和密码,这可以轻松访问存储库而无需生成SSH密钥并将其放在服务器上.

git

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

如何从 artifactory 下载文件夹 artifact

我需要从 shell 脚本上的 artifactory 下载 artifact level 文件夹。我找到了一些相同的主题,但没有找到解决方案。请给我解决方案。

shell artifactory

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

这些老式演员怎么办?

我得到一些"使用旧式演员"的警告我想摆脱,但我对此并不了解.

编辑: HKEY_CURRENT_USER确实在WinAPI中定义,所以我将单独留下一个.

(LPBYTE)&result:LPBYTE(&result)reinterpret_cast<LPBYTE>(&result)工作,但我不知道是否相同.那么我使用这三个中的哪一个?

(const BYTE*)&value:reinterpret_cast<const BYTE*>(&value)工作,但同样的事情.那么我使用这两个中的哪一个?

更多背景:

HKEY hKey;
std::string sResult = "";
if(regOpenKey(KEY_READ, &hKey))
{
    DWORD size=1024, type = REG_SZ;
    wchar_t result[MAX_PATH];
    if(RegQueryValueEx(hKey, key, nullptr, &type, (LPBYTE)&result, &size) == ERROR_SUCCESS)
        sResult = str_narrow(result);
}

RegCloseKey(hKey);
Run Code Online (Sandbox Code Playgroud)

和:

HKEY hKey;
if(regOpenKey(KEY_ALL_ACCESS, &hKey))
{
    DWORD value = 1;
    RegSetValueEx(hKey, key, 0, REG_DWORD, (const BYTE*)&value, sizeof(value));
}

RegCloseKey(hKey);
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助 :)

c++ casting

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