小编syn*_*317的帖子

Nunit - 在每次测试之前执行的全局方法

是否有可能使用Nunit定义一个方法,该方法将在程序集中的每个测试之前执行?

要非常清楚:我不希望在所有测试之前执行一次代码,但我需要在每次测试之前进行一些常规设置.所以,如果我有10个测试,我希望我的方法执行10次.

遗憾的是遗传不是我的选择(我已经将它用于不同的目的,不能混用)

c# nunit

8
推荐指数
2
解决办法
5566
查看次数

为什么这个简单的结构体为相等的对象返回不同的哈希码?

快速示例:

using System;
using System.Globalization;

var d1 = new DateTime(2023, 2, 28, 0, 0, 0, DateTimeKind.Unspecified);
var d2 = new DateTime(2023, 2, 28, 0, 0, 0, DateTimeKind.Local);

var foo1 = new Foo { d = d1 };
var foo2 = new Foo { d = d2 };

Console.WriteLine($"d1.Equals(d2): {d1.Equals(d2)}");
Console.WriteLine($"d1.GetHashCode() == d2.GetHashCode(): {d1.GetHashCode() == d2.GetHashCode()}");
Console.WriteLine($"foo1.Equals(foo2): {foo1.Equals(foo2)}");
Console.WriteLine($"foo1.GetHashCode() == foo2.GetHashCode(): {foo1.GetHashCode() == foo2.GetHashCode()}");

struct Foo {
    public DateTime d;
}
Run Code Online (Sandbox Code Playgroud)

印刷:

d1.Equals(d2): True
d1.GetHashCode() == d2.GetHashCode(): True
foo1.Equals(foo2): True
foo1.GetHashCode() …
Run Code Online (Sandbox Code Playgroud)

.net c# .net-core

8
推荐指数
0
解决办法
611
查看次数

使用 ruby​​ 检查是否有任何文件或目录匹配模式

我想检查带有通配符的模式是否与/var/data/**/*.xml磁盘上的任何文件或目录匹配。

显然我可以使用,Dir.glob但是当有数百万个文件时它非常慢,因为它太急切了 - 它返回与模式匹配的所有文件,而我只需要知道是否有任何文件。

有什么办法可以检查吗?

ruby

5
推荐指数
1
解决办法
1737
查看次数

如何从另一个程序宏调用一个程序宏?

我想编写两个程序宏 - 一个是我的,第二个来自另一个板条箱。

我想像普通函数一样调用程序宏。标记为#[proc_macro_derive]public的函数,但我不能从我的宏调用它:编译器找不到该函数。我认为过程宏函数仅在代码生成期间使用,并且在编译期间不存在于最终代码中。

我可以生成具有#[derive(...)]并且编译器将调用第二个宏的代码,但是这种方法要求最终用户依赖第二个宏包,即使他们没有直接使用它。

有什么方法可以像普通函数一样调用程序宏,它接受令牌并返回令牌?

rust

5
推荐指数
1
解决办法
531
查看次数

函数是否可以接受Option或&str或String类型的参数?

我正在尝试创建一个快速,灵活和方便的API,接受可选的字符串参数.我希望用户能够通过:

  • None
  • "foo"
  • "foo".to_string()
  • Some("foo")(相当于"foo")
  • Some("foo".to_string())(相当于"foo".to_string())

据我所知,最好的解决办法来处理"foo"或者"foo".to_string()Into<Cow<'a, str>>.在另一方面,最好的解决方案来处理"foo"或者Some("foo")Into<Option<&'a str>>.

因此我尝试了这个,但它没有编译:

fn foo<'a, T, O>(_bar: O)
where
    T: Into<Cow<'a, str>>,
    O: Into<Option<T>>,
Run Code Online (Sandbox Code Playgroud)
foo(Some("aaa"));
Run Code Online (Sandbox Code Playgroud)
error[E0283]: type annotations required: cannot resolve `_: std::convert::Into<std::borrow::Cow<'_, str>>`
  --> src/main.rs:12:5
   |
12 |     foo(Some("aaa"));
   |     ^^^
   |
note: required by `foo`
  --> src/main.rs:3:1
   |
3  | / fn foo<'a, T, O>(_bar: O)
4  | | where
5  | | …
Run Code Online (Sandbox Code Playgroud)

rust

3
推荐指数
1
解决办法
348
查看次数

标签 统计

c# ×2

rust ×2

.net ×1

.net-core ×1

nunit ×1

ruby ×1