小编Jos*_*ava的帖子

Gradle 自定义插件任务 .dependsOn 与命令行参数

我正在开发一个依赖于另一个插件的自定义 Gradle 插件。对于要运行的特定任务,我必须首先从外部插件运行任务。

project.tasks.create("MyTaskName", MyTaskName) {
    it.description = "MyDescription"
}.dependsOn("taskFromOtherPlugin")
Run Code Online (Sandbox Code Playgroud)

到目前为止,我只是使用基本功能。但是,我需要推断其他任务插件的命令行参数。手动运行外部任务时,它只是:

gradle taskFromOtherPlugin --parameter1 value1
Run Code Online (Sandbox Code Playgroud)

如何将 --parameter1 value1 放入 .dependsOn 结构中?所以我需要的是类似的东西

project.tasks.create("MyTaskName", MyTaskName) {
    it.description = "MyDescription"
}.dependsOn("taskFromOtherPlugin --parameter1 value1")
Run Code Online (Sandbox Code Playgroud)

gradle gradle-custom-plugin

5
推荐指数
0
解决办法
311
查看次数

如何使用 Visual Studio CppUnitTestFramework 初始化测试变量

我正在编写一个机器人控制器类Controller,其中我为 4 个可控电机中的每一个使用一个Axis结构体。

对于每个测试,我想重置所有内容,因此我在类中创建了一个指针,在每个测试方法之前将其更改为新的控制器。初始化在 TEST_METHOD_INITIALIZE 中工作正常,但是一旦调用任何 TEST_METHOD,程序似乎会重置轴指针。

感谢您的帮助!

编辑:经过进一步分析,我得出的理论是,初始化的 Axis 对象 Axis init_mx 在方法完成后将被删除。

Edit2:我认为这是一个稍微复杂一点的问题,如下所示:Pointer to local variable in C++ 尽管如此,我没有找到一种方法来重置每个方法的 Axis 变量,而不实际重置其中的每个变量。

using namespace Microsoft::VisualStudio::CppUnitTestFramework;
...
namespace UnitTest
{

    TEST_CLASS(UnitTestController)
    {
    public:
        Controller* controller;
        struct Axis *mx, *my, *mz, *mg;

        TEST_METHOD_INITIALIZE(methodName)
        {
            Axis init_mx(50), init_my(50), init_mz(50), init_mg(5);         
            mx = &init_mx;
            my = &init_my;
            mz = &init_mz;
            mg = &init_mg;
            Controller init_controller(mx, my, mz, mg);
            controller = &init_controller;
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

        }
        ...
        TEST_METHOD(id_3_next_mode)
        {
            mx->position = 5; 
            controller->getAxisPositionMx(); …
Run Code Online (Sandbox Code Playgroud)

c++ cppunit visual-c++ microsoft-cpp-unit-test

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