标签: command-line-arguments

Python:运行unittest.TestCase而不调用unittest.main()?

我在Python的unittest中编写了一个小测试套件:

class TestRepos(unittest.TestCase):

@classmethod
def setUpClass(cls):
    """Get repo lists from the svn server."""
    ...

def test_repo_list_not_empty(self):
    """Assert the the repo list is not empty"""
    self.assertTrue(len(TestRepoLists.all_repos)>0)

def test_include_list_not_empty(self):
    """Assert the the include list is not empty"""
    self.assertTrue(len(TestRepoLists.svn_dirs)>0)

...

if __name__ == '__main__':
    unittest.main(testRunner=xmlrunner.XMLTestRunner(output='tests', 
                                                 descriptions=True))
Run Code Online (Sandbox Code Playgroud)

使用xmlrunner pacakge将输出格式化为Junit测试.

我添加了一个命令行参数来切换JUnit输出:

if __name__ == '__main__':
    parser = argparse.ArgumentParser(description='Validate repo lists.')
    parser.add_argument('--junit', action='store_true')
    args=parser.parse_args()
    print args
    if (args.junit):
        unittest.main(testRunner=xmlrunner.XMLTestRunner(output='tests', 
                                                     descriptions=True))
    else:
        unittest.main(TestRepoLists)
Run Code Online (Sandbox Code Playgroud)

问题是运行脚本没有--junit工作,但使用--junitunittest参数的冲突调用它:

option --junit not recognized
Usage: …
Run Code Online (Sandbox Code Playgroud)

python unit-testing command-line-arguments python-2.7 python-unittest

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

在Linux上传递*作为命令行参数时的奇怪行为

我有这个非常简单的c程序:

#include <stdio.h>
int main (int argc, char ** argv){
  printf ("%s\n",argv[1]);
}
Run Code Online (Sandbox Code Playgroud)

在Linux/bash上运行时如下:

./a.out *
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:

a.c
Run Code Online (Sandbox Code Playgroud)

为什么?

c linux shell glob command-line-arguments

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

Ruby 简单帮助选项实现

Ruby 是否支持 POD 文档或任何替代方案?

我对此很感兴趣,因为我不知道如何提供一些简单的“-h”选项帮助。也许我在这里错了,请给我很好的例子。

我的例子:

$ ruby rubyScript.rb -h
This message is shown if you pass parameter -h.
Run Code Online (Sandbox Code Playgroud)

我对此的实施将是:

require 'optparse'

def HelpMessage()
  puts <<-__HELP__
  This message is shown if you pass parameter -h.
  __HELP__
end
OptionParser.new do |opts|
  opts.banner = "Usage: rubyScript.rb [options]"
  opts.on('-h', '--help', 'Help option') { HelpMessage(); exit()}
end.parse!
Run Code Online (Sandbox Code Playgroud)

我认为这是一个有点丑陋的代码,但我不知道另一种创建简单帮助的方法

ruby optparse command-line-arguments output

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

Python:将参数传递给脚本

我有一个工作代码可以从 csv 列中打印随机行。

#!/usr/bin/python

import csv   

import random 

**col**=2

with open('<filename>','r') as f:
        reader=csv.reader(f)
        data=[row[col] for row in reader]
    from random import shuffle
    shuffle(data)
    print '\n'.join(data[:**100**])
    f.close();
Run Code Online (Sandbox Code Playgroud)

我想参数化这个脚本。通过传递,位置(列)和样本(例如 100 个值)

我找不到一个像样的教程来解释这一点。有什么想法吗 ?

python csv parameters command-line-arguments

0
推荐指数
2
解决办法
4322
查看次数

单元测试未运行

我正在使用命令行中的参数运行单元测试。下面是我的测试代码。

import unittest
import sys
from toolbox.models import *
akit_id = sys.argv[1]

class TestQuizCase(unittest.TestCase):

    def testupdate_quiz(self):
        akit = AssignmentKit.objects.get(pk = akit_id)
        akit.update_score_grade()
        self.assertEqual(akit.marks, 50000)

if __name__ == "__main___":
    del sys.argv[1:]
    unittest.main()
Run Code Online (Sandbox Code Playgroud)

现在从命令行我正在做:

>>> python test_quiz.py 2000
Run Code Online (Sandbox Code Playgroud)

什么都没有,因此没有进行测试。我尝试了日志记录,发现控件甚至没有进入测试功能。我缺少的是导致问题的 sys.argv 吗?

python testing command-line-arguments

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

你如何在 Java 中为命令行参数制作标志?

我有一个用于 25 个应用程序的枚举和一个用于某些环境的枚举。

现在使用我拥有的代码,我可以不传递任何参数并在所有环境中运行所有应用程序(这是我想要的),或者我可以按顺序传递一个应用程序和一个环境,它将运行它。我需要能够通过执行类似 -app app1 app2 app3 ... -env env1 env2 ...

我以前从未使用过标志,也从未尝试过解析命令数组。这是代码的一部分。我认为 if 很好,但 else 是我需要帮助的地方。

public static Application chooseAppTest(String[] args) 
    {
        Application application = null;

        switch (Application.valueOf(args[0]))
        {
        case ACCOUNTINVENTORY:
            new AccountInventory(Environment.valueOf(args[1]));
            AccountInventory.accountInventoryDatabaseTests(testResults);
            break; 

public static void main(String[] args) 
{
    // run tests and collect results
    if (args.length == 0)
    {
        LogIn.loginTest(testResults);
        DatabaseTest.testResults(testResults);
        LinkTest.linkTests(testResults);
    }
    else 
    {
            // First choose application, then choose environment
        Application.chooseAppTest(args);
    }
Run Code Online (Sandbox Code Playgroud)

java command-line-arguments

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

如何通过使用和创建函数来计算命令行参数中的字符数

我无法理解如何创建一个函数来计算命令行参数中的字符数。它只需要在 'my_strlen()' 函数中计算结果,但在 main() 中打印结果。我对 C 很陌生,但这是迄今为止我的代码;

int my_strlen(  char string[]);
{
     strcpy(string, argv[1];
     return 1;
}
int main(int argc, char *argv[])
{
  if(argv != 2)
  {
    printf("You must run this program with an argument\n");
    return 2;
  }
  printf("%d", strlen(string);
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我很困惑,我也不知道如何存储 strlen(string) 的值,以便稍后将其作为自己的整数调用。

c strlen argv command-line-arguments

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

如何将整数参数传递给shell脚本然后将其传递给程序?

以下是我正在尝试做的一个示例:

#!/bin/bash
set n = $argv[1]
g++ main.cpp
./a.out n
Run Code Online (Sandbox Code Playgroud)

我试图在shell中调用它,如下所示:

myscript 3
Run Code Online (Sandbox Code Playgroud)

输出与执行以下操作不同

./a.out 3
Run Code Online (Sandbox Code Playgroud)

但我希望它是一样的.怎么做?

c++ bash shell g++ command-line-arguments

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

在 C 中使用 getopt 作为命令行参数

我正在尝试接受命令行参数。如果我想有多个可选的命令行参数,我将如何去做?例如,您可以通过以下方式运行该程序:(每个实例都需要 a,但 -b -c -d 可以选择以任何顺序提供)

./myprogram -a
./myprogram -a -c -d
./myprogram -a -d -b
Run Code Online (Sandbox Code Playgroud)

我知道 getopt() 的第三个参数是选项。我可以将这些选项设置为“abc”,但是我设置 switch case 的方式会导致循环在每个选项处中断。

c debugging getopt getopt-long command-line-arguments

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

C++ - int main中的argv []是否总是char*类型(如果使用argv则为char**)?

我知道,因为argc是参数的数量,它可以是一个int.但为什么应该argvchar pointer类型?这是否意味着我无法传递整数参数并argv[1]在数学运算中使用?

编辑:为了使它更清晰,是否可以写出像int* argv[].是否argv已定义为char*无法更改的类型?

c++ program-entry-point char command-line-arguments

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