场景:
我刚刚开始实现一堆代码,但是当我执行它时,我会抛出一个StackOverflowException?StackOverflowException没有堆栈跟踪,所以我卡住了.我知道为什么会发生堆栈溢出,但要修复它我需要知道它的根目录是什么.
我得到的是:tag-you-it.dll中出现未处理的"System.StackOverflowException"类型异常
选项:
PS:
这是一种假设情况(虽然并不常见),因此没有可用的代码.
我正在尝试使用AES/GCM/NoPadding加密和解密数据.我安装了JCE Unlimited Strength Policy Files并在下面运行了(简单的)基准测试.我使用OpenSSL做了同样的事情,并且能够在我的PC上实现超过1 GB/s的加密和解密.
使用下面的基准测试,我只能在同一台PC上使用Java 8进行3 MB/s的加密和解密.知道我做错了什么吗?
public static void main(String[] args) throws Exception {
final byte[] data = new byte[64 * 1024];
final byte[] encrypted = new byte[64 * 1024];
final byte[] key = new byte[32];
final byte[] iv = new byte[12];
final Random random = new Random(1);
random.nextBytes(data);
random.nextBytes(key);
random.nextBytes(iv);
System.out.println("Benchmarking AES-256 GCM encryption for 10 seconds");
long javaEncryptInputBytes = 0;
long javaEncryptStartTime = System.currentTimeMillis();
final Cipher javaAES256 = Cipher.getInstance("AES/GCM/NoPadding");
byte[] tag …Run Code Online (Sandbox Code Playgroud) 我一直在玩JUnit 5和spring-test-junit5。然后我尝试使用嵌套测试功能,但我的测试失败了。当我使用 gradle 直接从命令行运行时,也会发生这种情况。
@ExtendWith(SpringExtension.class)
@ContextConfiguration(classes = TestConfig.class)
@DisplayName("In cat club")
public class NestedCatTests {
@Autowired
Cat cat;
@Autowired
List<Cat> cats;
@Test
@DisplayName("Catbert is the cat")
void catWasAutowired() {
assertEquals(
"Catbert",
cat.getName()
);
}
@Nested
@DisplayName("Catbert")
class IsMemberOfClub {
@Test
@DisplayName("is a member")
void isMemberOf() {
assertTrue(cats.contains(cat));
}
}
}
Run Code Online (Sandbox Code Playgroud)
我收到以下异常:
java.lang.IllegalStateException: Failed to load ApplicationContext
at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124)
at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)
at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:230)
at org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance(SpringExtension.java:91)
at org.junit.jupiter.engine.descriptor.ClassTestDescriptor.lambda$null$1(ClassTestDescriptor.java:196)
at org.junit.jupiter.engine.descriptor.JupiterTestDescriptor.executeAndMaskThrowable(JupiterTestDescriptor.java:102)
...
at …Run Code Online (Sandbox Code Playgroud) 我有一个ASP.NET Core 2.0应用程序,我打算作为一个独立的应用程序运行.应用程序应启动并绑定到可用端口.为此,我将WebHostBuilder配置为侦听" http://127.0.0.1:0 "并使用Kestrel服务器.一旦web主机开始监听,我想用文件中的实际端口保存url.我想尽早做到这一点,因为另一个应用程序将读取文件以与我的应用程序进行交互.
如何确定Web主机正在侦听的端口?
我在FlowDocumentReader中使用ViewingMode ="Scroll"显示FlowDocument.如果我在鼠标上使用滚轮,则文档滚动速度非常慢.我想增加滚动步骤.
我试图在控制面板中更改鼠标的滚动设置,但这没有任何效果.我认为WPF忽略了FlowDocumentScrollViewer的设置.
我在FlowDocument和FlowDocumentReader上添加了一个Scroll事件,但是当我使用鼠标滚轮时,它不会触发.
我在FlowDocumentReader上添加了一个Loaded事件,得到了ScrollViewer后代,从滚动查看器的模板中找到了ScrollBar("PART_VerticalScrollBar")并调整了SmallChange和LargeChange属性.这也没有任何影响.
有人有主意吗?
我有一种情况,我正在使用单元测试来执行执行测试的外部工具.我可以从工具的退出代码中确定测试是通过,失败还是超时.
有什么方法可以让单元测试失败,将测试结果设置为超时而不是失败?
我尝试过抛出TimeoutException,但这与使用Assert有相同的结果.
编辑: 我们将单元测试与TFS中的测试用例相关联.在Microsoft测试中心,测试运行中的测试可以有许多状态.其中一个是超时状态.我试图使我的测试失败,以便它在这种状态下正确显示,并且不会与失败的测试用例混在一起.
在VS2008的启动页面上的"Recent Projects"部分对我来说感觉很无用.
我习惯于检查多个存储库以处理不同的功能.我们的存储库结构非常深入.文件 - >"最近的项目"菜单没有显示足够的路径让我找出它要打开的项目.我最接近的是将鼠标悬停在启动页面上"最近项目"部分的项目中,因为这样我就可以在状态栏中读取整个路径了.我仍然倾向于经常打开项目以测试不同的想法,但总的来说我只在一些项目上工作.
我认为拥有一个"最喜欢的项目"部分而不是"最近的项目",我可以为自己命名的条目会很棒.
有谁知道VS2008这样的加载项?
我创建了一个项目模板,其中包含一个csproj,其中包含一个指向项目文件的Import,其中列出了所有第三方项目位置.我总是使用这个项目模板在同一个相对目录中创建项目.
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="../../../3rdParty/ThirdParty.targets" />
...
<ItemGroup>
<Reference Include="Library, Version=$(LibraryVersion), Culture=neutral, PublicKeyToken=$(LibraryPublicKeyToken), processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>$(LibraryDir)LibraryDll.dll</HintPath>
</Reference>
</ItemGroup>
...
</Project>
Run Code Online (Sandbox Code Playgroud)
csproj文件在Visual Studio中以及从命令提示符运行msbuild时正常工作.当我尝试使用项目模板创建项目时,我收到以下错误:
C:\ Users ...\AppData\Local\Temp\534cylld.o0p\Temp\MyModule.csproj(3,3):导入的项目"C:\ Users ...\AppData\Local\3rdParty\ThirdParty.targets " 没找到.确认声明中的路径是否正确,以及该文件是否存在于磁盘上.
似乎Visual Studio首先尝试在临时位置打开项目.我已经尝试将$(MSBuildProjectDirectory)添加到导入位置,希望它可能强制它使用我想要的位置,但这也不起作用.
有什么建议?
如果我两次编译一个C#项目,我会得到两个程序集.这些程序集不完全相同(使用二进制diff).我可以想到为什么会这样,但事实仍然是两个组件的来源是相同的.
我担心在这些程序集之间创建补丁,并在客户机器上应用补丁.
有谁知道我可以创建和应用补丁的库(最好是.NET)或工具?
理想情况下,它还应该处理小的更改,例如更改项目级别的依赖项或调整源代码中的几行.它不一定能够处理更大的更改,因为我很乐意在这种情况下完全替换程序集.
更新:
我认为更多的背景可能有助于澄清我所得到的.我有一个持续集成服务器构建我的应用程序.我更改文件和程序集版本以反映我正在构建的内部版本号和版本.我可以用不同的方式完成它,但这是我喜欢的选项.
这会导致在构建应用程序时更改程序集引用,但我很满意.我现在关注的是将更新分发给以前发布的版本.我使用InstallShield构建更新.InstallShield可用的程序集简化为小补丁.这些不会大幅增加更新的大小.
我的应用程序有一些数据文件,基本上是包含程序集的加密存档.InstallShield无权访问这些程序集或了解我的存档.它不知道如何解密和提取它.我编写了自己的补丁程序,它在先前的存档中找到已更改的文件,并用新的更新版本替换它们.基本上是搜索和替换策略.
一个存档包含近百个(并且正在增长)这些程序集,其中一些程序集包含大型数据文件作为资源.这些程序集依赖于作为应用程序一部分的程序集.它们也在持续集成构建期间编译.在构建期间不编译它们将为依赖性问题留下空间,我不愿意尝试管理它.每次创建补丁时,都会包含所有这些程序集.我现在正在寻找通过为这些程序集生成补丁来减少补丁大小的选项.
.net ×3
c# ×3
add-in ×1
aes-gcm ×1
assemblies ×1
benchmarking ×1
cryptography ×1
csproj ×1
debugging ×1
favorites ×1
java-8 ×1
junit5 ×1
mstest ×1
scroll ×1
spring-test ×1
tfs ×1
wpf ×1