JavaScript 在结束行添加“·”字符
Posted
技术标签:
【中文标题】JavaScript 在结束行添加“·”字符【英文标题】:JavaScript adding "·" character to endline 【发布时间】:2022-01-20 02:55:39 【问题描述】:所以我正在尝试为我编写的 python 代码运行 tests.js,一切似乎都很好,但是在每一行的末尾(“\n”字符),tests.js 文件附加了一个“ ·“ 特点。该文件在内部使用 toString() 方法将 python 输出转换为字符串,然后使用 toEqual() 将其与预期的字符串进行比较。
我的代码:
def print_help():
print("""Usage :-
$ ./task add 2 hello world # Add a new item with priority 2 and text "hello world" to the list
$ ./task ls # Show incomplete priority list items sorted by priority in ascending order
$ ./task del INDEX # Delete the incomplete item with the given index
$ ./task done INDEX # Mark the incomplete item with the given index as complete
$ ./task help # Show usage
$ ./task report # Statistics""", end="")
输出:
tests.js 代码:
test("prints help", () =>
let received = execSync(tasksTxtCli("help")).toString("utf8");
expect(received).toEqual(expect.stringContaining(usage));
);
【问题讨论】:
【参考方案1】:我不知道您在 Node.js 中使用什么输出,但很可能这实际上不是中间点字符,而是终端模拟器无法打印的字符。
换句话说,您所看到的并不是真的。只是有些东西在那里。
我希望这是\r\n
和\n
之间换行符的区别。您的比较字符串可能没有 \r\n
,但 Python 输出可能有。
如果您想真正确定它是什么,请将您的 Python 输出通过管道传输到一个文件并使用十六进制编辑器打开它。甚至,只是不要转换为字符串并使用console.log()
(或util.inspect()
)来查看二进制输出的十六进制表示。
【讨论】:
是的,你是对的。我使用十六进制编辑器检查了输出,它确实是一个回车。但现在的问题是:我该如何摆脱它?我不能编辑 test.js 文件,因为我应该只在 python 文件中进行编辑。 @AyamDobhal 我认为你的测试太严格了。但是,如果您坚持使用自动化测试检查此输出,我认为您的测试应该支持以 Python 应用程序结尾的任一行。在任何情况下,当您编辑此 Python 文件时,请使用允许您更改行尾的文本编辑器。例如,如果您使用的是 VSCode,则可以在 IDE 的右下角进行更改。【参考方案2】:根据我的解决方案将您的代码修改为:
def print_help():
help="""Usage :-
$ ./task add 2 hello world # Add a new item with priority 2 and text "hello world" to the list
$ ./task ls # Show incomplete priority list items sorted by priority in ascending order
$ ./task del INDEX # Delete the incomplete item with the given index
$ ./task done INDEX # Mark the incomplete item with the given index as complete
$ ./task help # Show usage
$ ./task report # Statistics"""
sys.stdout.buffer.write(help.encode('utf8'))
这样,dot(.) 就不会出现在命令行上。 参考:https://github.com/nseadlc-2020/package-todo-cli-task/issues/12
【讨论】:
以上是关于JavaScript 在结束行添加“·”字符的主要内容,如果未能解决你的问题,请参考以下文章
将文本字段更新为 JSON 字符串 - Javascript/JQuery [重复]